zoukankan      html  css  js  c++  java
  • vim 指令備忘錄

    vim 教學資源

    vimtutor zh 進入 vim 中文教學文件

    安裝中文的 vim help文件

    vim 冒險遊戲:初學者練習 vim 鍵盤操作兼玩遊戲,很有趣喔!!

    HOWTO - vi, vim:很棒的教學!

    vim 學習資料總匯

    移動游標的方法

    [ h ] [ j ] [ k ] [ l ]

    [←] [ ↓ ] [ ↑ ] [→]

    w 以一個單字字首向後移動

    b 以一個單字字首向前移動

    e 以一個單字字尾向後移動

    0 = [Home] 移到該行的最前面

    ^ 移到該行的第一個字元

    $ = [End] 移到該行的最後面

    gg 移動到檔案最前面的第一個字元

    G 移動到檔案最後面一行的第一個字元

    % 在 () {} 上會移動到相對應的括號

    f " 移到該行的下一個雙引號 (F反向)

    n + [space] 向右移動 n 個

    n + [Enter] 向下移動 n 行 = nG = nj = n↓ = :n

    ( 移到句子開頭的第一個字元=^

    ) 移到句子結尾的下一行

    { 移到上一個區塊的上一行

    } 移到下一個區塊的下一行

    [[ 移到上一個區塊的第一行

    ]] 移到下一個區塊的第一行

    [Page Down] = [Ctrl] + [f] 下一頁

    [Page Up] = [Ctrl] + [b] 上一頁

    [Ctrl] + [e] 向下捲動一行

    [Ctrl] + [y] 向上捲動一行

    H 移動到該頁第一行

    M 移動到該頁中間那一行

    L 移動到該頁最後一行

    zz 移動畫面置中游標 (ZZ 存檔並離開 = :wq = :x , ZQ 直接離開)

    zb 移動畫面置底游標

    zt 移動畫面置頂游標

    標記

    :marks 顯示所有標記

    ma 標記mark a

    'a 快速跳到標記mark a的那一行

    ' ' 回到剛剛的位置

    :delma a 刪除標記a

    搜尋

    /word 游標之後開始找

    n 搜尋下一個 ( * 游標所在單字搜尋下一個相同的單字)

    N 搜尋上一個 ( # 游標所在單字搜尋上一個相同的單字)

    ?word 游標之前開始找

    取代

    :1,$s/word1/word2/g 從第一行到最後一行尋找word1字串取代為word2

    :1,$s/word1/word2/g取代前提示使用者確認

    :n,md n到m行刪除

    剪下、複製與貼上

    x = [del]

    X = [backspace]

    dd = D 剪下該列 (ndd)

    dw 剪下目前游標後的單字

    diw 剪下游標上的單字

    cc = C = S 剪下該行後,進入insert模式

    cw 剪下目前游標後的單字,進入insert模式

    ciw 剪下游標上的單字,進入insert模式

    ci' 剪下單引號內的字串,進入insert模式

    yy = Y 複製該列 (nyy)

    yw 複製目前游標後的單字

    yiw 複製單字

    yi' 複製單引號內的字串

    "ayy 把複製的字串放到a索引裡 ( :reg指令,清空:let @a = ' ' )

    "ap 游標後貼上a索引裡的內容

    p 游標後貼上

    P 游標前貼上

    . 重複前一個動作

    u 復原前一個動作

    [Ctrl] + [r] 重做上一個動作

    進入 insert 模式

    A 游標移到行尾,進入 insert 模式

    o 目前游標所在的下一行處插入新的一行

    O 目前游標所在處的上一行插入新的一行

    進入 replace 模式

    r 取代游標所在的一個字元

    R 會一直取代游標所在的文字,直到按下[ESC]為止

    visual模式區塊選擇

    [v] + [←↓↑→] 反白字元

    [V] + [←↓↑→] 反白列visual line模式

    [Ctrl] + [v] visual block模式

    J 反白的列合併成同一列

    > 反白的列全部向右縮排

    < 反白的列全部向左縮排

    vi" 反白""中的字串,不包括"

    va" 反白""中的字串,包括"

    y 反白的地方複製起來

    d = x 反白的地方剪下

    多檔案編輯

    vim file1 file2

    :n 編輯下一個檔案 =:bn

    :N 編輯上一個檔案 =:bp

    :b<索引編號> 切換到檔案的索引編號

    [Ctrl] + [^] 目前的檔案與下一個檔案互相切換

    :files = :ls = :buffers 列出目前 vim 開啟的所有檔案

    :e Filename or Dir 開啟另一個檔案編輯,若是目錄的話,會開啟預設開啟netrw檔案瀏覽視窗

    :bw 目前編輯的檔案從buffer中移除

    :r <Filename> 讀一個檔案的內容,插入目前游標下方

    :wa 全部檔案寫入

    :qa 全部檔案離開

    多分割視窗操作

    vim -o file1 file2 上下分割視窗

    vim -O file1 file2 左右分割視窗

    :sp = [Ctrl] + [w] + [s] 上下分割視窗,以原檔案開啟

    :new file = [Ctrl] + [w] + [n] 上下分割視窗,以新檔案開啟

    :vs = [Ctrl] + [w] + [v] 左右分割視窗,以原檔案開啟

    :vnew file 左右分割視窗,以新檔案開啟

    [Ctrl] + [w] + [←↓↑→] 游標可移動任何的視窗

    [Ctrl] + [w] + [p] 切換到上一個視窗

    [Ctrl] + [w] + [w] 切換到下一個視窗

    [Ctrl] + [w]+ [q] = [Ctrl] + [w]+ [c] = :q = :x

    [Ctrl] + [w] + [o] = :only 留下目前視窗,其他關閉

    [Ctrl] + [w] + [=] 平均視窗大小

    [Ctrl] + [w] + [f] 以上下分割形式,開啟游標上的檔案或路徑

    檔案瀏覽視窗

    gf 開啟游標上的檔案或目錄,覆蓋目前編輯檔案

    gF 開啟游標上的檔案或目錄,覆蓋目前編輯檔案

    :Sex 以上下分割形式,開啟檔案瀏覽視窗

    :Vex 以左右分割形式,開啟檔案瀏覽視窗

    :Explore 開啟檔案瀏覽視窗

    Tab視窗操作

    vim -p file1 file2 用 tab 開啟檔案

    :tab ball  = :tabnew | b <索引編號> 把所有 buffer 轉成 tab 形式

    :tabe = :tabnew file 開新 tab

    :tabc = [Ctrl] + [w]+ [c]  = :q 關閉 tab

    :tabo 留下目前 tab,關閉其他

    :tabn = gt 切換下一個 tab (ngt) = [Ctrl] + [page down]

    :tabp = gT 切換上一個 tab = [Ctrl] + [page up]

    :tabr 第一個標籤頁

    :tabl 最後一個標籤頁

    :tabm <n> 移動到第n個tab

    :tabs 列出所有tab

    :map  <F5> :tabp<CR>
    :map  <F6> :tabn<CR>
    :map  ^T   :tabnew .<CR>
    :imap  <F5> <ESC>:tabprevious<CR>i
    :imap  <F6> <ESC>:tabnext<CR>i
    :imap  ^T  <ESC>:tabnew .<CR>i

    指令

    :w <filename> 另存新檔

    :f <filename> 改目前編輯的檔名,儲存時另存新檔

    :n1,n2 w <filename> 將 n1 到 n2 的內容儲存成 filename 這個檔案

    :! command 暫時離開 vi 到指令列模式下,執行 command 的顯示結果

    :!! 執行前一個指令

    :r!ls 讀 ls 指令輸出到該檔內

    :%!nl -ba 全部(包括非空白行)最前面加入行號

    :sh 啟動一個shell,暫時離開vim,[Ctrl] + [d] =exit 返回vim

    :so <file> (source)讀檔案中的指令並執行

    排版

    >> 向右縮排 (n>>)

    << 向左縮排 (n<<)

    其他

    vim –r <filename> 恢復編輯時被中斷的檔案 :recover

    [Ctrl] + [n] = [Ctrl] + [p] 自動補齊檔案中已有的單字,詳細可參考這篇

    [Ctrl] + [g] 顯示檔名、行號/總行數、瀏覽的百分比

    K 查看當前程式函式庫man page

    :TOhtml 該檔案傳換成HTML形式

    vim 的環境設定參數

    :opt 列出所有目前的設定,在 set 這個字上按 Enter 即可改變設定,改完後按 :q就可以了 (在簡短說明處按 Enter 則會叫出該部份的說明檔給您參考)

    :h <cmd> 查 vim 指令說明文檔

    :set <option>? 顯示 option 這設定的目前值

    :set all 顯示目前所有的環境參數設定值。

    :set 顯示有更動過的設定

    :set no<option> 取消該設定

    ~/.vimrc

    :syntax on "語法高亮度顯示

    :set ai "(autoindent) 自動縮排

    :filetype plugin indent on

    :set nu "(number) 顯示行號

    :set lbr "(linebreak) 在空白或標點符號處斷行,實際上沒有插入EOF

    :set ts=4 "(tabstop) 設定一個tab等於四個空白長度

    :set et "(expandtab) 將 tab鍵轉換成空白取代(由tabstop設定而定)

    :set sw=4 "(shiftwidth) 縮排>>時,一次移動的字元寬度

    :set sm "(showmatch) 自動找對應括號

    :set sc "(showcmd) 在狀態欄顯示正在輸入的指令

    :set hls "(hlsearch) 反白搜尋到的字串

    :set is "(incsearch) 不需按 Enter,邊打邊搜尋

    :set ru "(ruler)顯示說明

    :set ls "(laststatus) 最下方顯示狀態列

    :hi  stl ctermbg=darkblue "(statusline)

    :set smd "(showmode) 顯示目前vim模式

    :set paste "直接貼上文字時格式不會跑掉

    :set nobk "(nobackup)存檔時不要有xxx~備份檔

    :set noswf "(swapfile) 編輯檔案時不會自動產生swp檔,但會消耗系統更多的記憶體(不建議)

    :set fdm=syntax "(foldmethod)摺疊程式碼功能 (快捷鍵za)

    :set fdl=99 "(foldlevel) 預設情況不摺疊程式碼

    :set t_Co=256 "支援256色顯示

    :set enc=utf8 "(encoding) 設定顯示的編碼

    :set fencs=big5,utf-8,default "(fileencodings) 開啟時自動判斷檔案編碼

    :set fenc=utf-8 "(fileencoding)建檔和存檔時編碼,若設定與enc不同時,以fenc為準。

    :set ffs=unix,dos "(fileformats) 自動調整檔案的EOF斷行

    :set hi=50 "(history)設定指令的歷史紀錄

    :set mouse=a "讓vim支援滑鼠

    :set wim=list:full "(wildmode)再輸入:指令時,按 [Tab] 列出所有符合的指令

    :set  wmnu "(wildmenu)

    vim 退格键(backspace)不能用,引用這篇

    set nocp "(nocompatible) 取消vi相容模式

    set backspace=indent,eol,start

    vim 開啟 Binary file

    vim -b <filename> 防止檔案最後加上EOL 或 set bin (binary)也可以

    %!xxd 轉換成Hex的形式顯示

    %!xxd -r 轉換回Binary的形式顯示

    ga 游標處字元的編碼顯示10,16,8進制

    使 vim 與系統剪貼簿互相複製、貼上,引用這篇

    sudo apt-get install vim-gnome

    "+y 複製到系統剪貼簿

    "+p 系統剪貼簿複製到VIM

    讓系統所有使用者共享 vimrc 設定檔

    /usr/share/vim/vimrc

    /etc/vim/vimrc.local

    更改系統預設編輯器,引用這篇

    update-alternatives --config editor

    putty 環境下,使 vim 可以使用 numlock 的按鍵,參考這篇

    開啟vim時,自動恢復上次vim的工作環境,參考這篇

    給程式設計師的Vim入門圖解說明

    最後分享一個vim速查卡

    參考網址:

    1. 鳥哥的 Linux 私房菜-第十章、vim 程式編輯器

    2. 網站後端的工作筆記-vim常用查詢指令

    3. 大家來學VIM(一個歷久彌新的編輯器)

    4. 简明 Vim 练级攻略

  • 相关阅读:
    Android组件化路由实践
    RecyclerView实现Gallery画廊效果
    ReactNative实现GridView
    [Java][Servlet] Cannot call sendRedirect() after the response has been committed
    [Java][Servlet] Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
    [Environment Build] Win10下配置Apach Tomcat
    [Java][Liferay] File system in liferay
    [Java][Liferay] 解决在Linux系统中liferay-ext项目无法卸载的问题
    [Coding Style] CSS coding style
    [JQuery] Using skill in JQuery
  • 原文地址:https://www.cnblogs.com/yijay/p/3622285.html
Copyright © 2011-2022 走看看