摘要:相反,不顯示行號設置為粘貼模式,解決粘貼時縮進錯亂問題。會自動加入創建從當前行起至以下行的折疊標記,進行折疊。中的標記都有一個名字,這個名字用單一的字符表示。
“學習vim并且其會成為你最后一個使用的文本編輯器”
學習建議:
丟棄鼠標和小鍵盤
具有搭配使用各種按鍵的意識
首先來一張 mindmap :
初級 編輯模式(Insert Mode)編輯模式包括以下動作:
insert:i在光標所在字符前插入,I在當前行首第一個非空格字符前插入
append:a在光標所在字符后插入,A在行末尾開始插入
open:o在下一行插入新行,O在光標所在行的上一行插入新行
replace:r將光標處字符替換成r緊接的字符;R一直替換字符串,知道ESC鍵退出,同windows下的Insert鍵
Ctrl+p:自動提示
[ESC]:回到普通模式
普通模式(Normal Mode)h, j, k, l,分別對應 左← 下↓ 上↑ 右→
:q, :q!, :wq 退出 不保存強行退出 保存退出
移動光標到當前行首/非空格,同^,:0
$ 移動光標到當前行尾,同:$
G 移動光標到文檔最后一行首
30G 轉到第30行,同 :30
9- 光標向上移動9行,同9k
9+ 光餅向下移動9行,同9[space],9j
gg 轉到文檔第一行(1G)
H 移動到屏幕的第一列
M 移動到屏幕的中間列
L 移動到屏幕的最后列
w 移動到下一個單詞的首字母,(標點符號認為是一個單詞,W表示單詞以空格分隔)
e 移動到下一個單詞的末尾,(E認為單詞以空格分隔)
b 移動到上一個單詞的首字母,(B認為單詞以空格分隔)
fx 移動到下一個字母是x的位置。Fx向上移動。
% 匹配括號移動,包括 (, {, [ ,你需要把光標先移到括號上
CTRL+b 向上(前)翻頁
CTRL+f 向后翻頁
d 刪除開始。其實是放到寄存器中,p或P命令調用。c即change,刪完進入編輯模式
d$ 刪除光標到行尾的所有文字,同D。C指令進入編輯模式
dw 刪除當前字符到單詞尾的所有字符。cw刪除光標后的單詞并進入插入模式,等同替換
dd 刪除當前一行
2dd 刪除當前兩行
x 剪切光標處字符,可以p粘貼出來
y 復制開始。yank起來,p或P命令調用
yy p 復制當前行并粘貼到下一行
5yy p 復制當前行以下5行,在合適的地方粘貼
yw p 復制一個單詞并粘貼。
yi{ 復制光標所在{}中的內容。很容易知道ci{ 和 di " 的意思。
u 撤銷
CTRL+r 重做
. 點號重復做上一個命令
``.` 移動光標到上一次的修改點
Ctrl+g 查看我當前位置
命令模式/word 向下查找word,n定位到下一個。?word 向上開始查找,同/word配合N。*直接查找光標所在處單詞
:%s/word1/word2/g 替換所有word1為word2(^$ [])
:set noic 區分大小寫 (即set no igorecase,set ic不區分大小寫)
:set nu 顯示行號。:set nonu相反,不顯示行號
:set paste 設置為粘貼模式,解決Ctrl+Insert粘貼時縮進錯亂問題。:set nopaste設置回默認
:se ff=unix 設置文本文件的格式為unix,去掉windows系統文件中的^M。
:!ls 執行bash下的命令ls,回車后繼續回到vi。一般在一個不存在的目錄中創建文件時用到
:set all 查看vim說有設置屬性值
:map 查看綁定的快捷鍵
:marks 查看可用標記
熟練上面的命令,已經可以滿足日常工作要求,要提高效率可以學習vim的高級用法,如分屏顯示、分頁、標簽功能、代碼折疊、鍵盤映射。
可視化模式visual mode多用于用鍵盤靈活選擇文本。v或V鍵進入,可以實現同時編輯多行(如注釋)
中級 高級組合命令:sh 暫時離開vi,進入shell命令行
:!ls !表示要執行一個shell命令
q: 調出歷史命令窗口
cc 替換一行,清空一行
cw 替換一個單詞,進入插入模式
ea 在當前單詞最后插入
vw visual模式選擇一個單詞
VU 全選一行,轉換成大寫
:5,12 co 13 將5至12行復制到第13行下
gg=G 自動縮排文件
% : 匹配括號移動,包括 (, {, [. ,你需要把光標先移到括號上
* 和 #:匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)
當光標在( ), [ ],< >, { }, " ", "" 內時,可以用ci, di, 或yi,加上(, [, <,{, ", "。這樣可以改寫/刪除/復制( )內,[ ]內,< >內,{ }內," "內," "內的內容。
多行注釋(塊操作)
首先按esc進入命令行模式下,按下Ctrl + v,進入列(也叫區塊)模式;
在行首使用上下鍵kj選擇需要注釋的多行;
按下鍵盤(大寫)I鍵,進入插入模式;
然后輸入注釋符(“//”、“#”等);
最后按下esc鍵
刪除多行開頭的一個字符與此類似,刪除多個字符也只要左右鍵,然后使用d。
另外一種多行注釋的方式就是替換:
:5,9s/^/#/g 添加注釋#
:5,9s/^#//g 刪除注釋#
:5,9s#^#//#g 添加注釋//,同:5,9s/^///#/g
:5,9s#^//##g 刪除注釋//
多行縮進
[ESC], Ctrl+v 選擇行 <或>左右縮進,=自動縮進(gg=G的局部功能)
多行行末尾加上 >> ${log}:Ctrl+v /^echo
>>相當于tab鍵,一個縮進
多行刪除
首先在命令模式下,輸入set nu顯示行號;
通過行號確定你要刪除的行;
命令輸入:32,65d,回車鍵,32-65行就被刪除了
自動補全
在Insert模式下,你可以輸入一個詞的開頭,然后按
分割窗口(同時編輯多個文件)
vi -o file1 file2 水平分屏,也可以在先打開file1后,使用:sp file2
vi -O file1 file2 垂直分屏,也可以在先打開file1后,使用:vsp file2
Ctrl+w w 光標切換到另一個屏
k 關閉當前窗口,如果有改動則提示要先保存。:wqa!保存退出所有文件
Ctrl+w v 左右分割當前打開的文件。Ctrl+w s上下分割顯示
Ctrl+w H 左移該屏(大寫,L右移,K上移—改變vertical為horizontal)
:set scb 分屏同步滾動
另外一種不分屏,同時編輯多個文件的方法
vi file1 file2
:ls 展示全部打開的文檔。其中 % 代表正在打開的文件(buffer),# 代表上一個編輯過的文件,a 代表當前激活的buffer空間,+ 代表有修改過的內容但還未保存
:buffer 2 轉到打開的第二個文件。或簡寫為 :b2
:bn 轉到下一個文件。沒有保存不能離開這個文件。:bp 上一個文件
:b# 轉到上一個編輯過的文件,同 :e #。類似于多屏中Ctrl+w w
:e file3 編輯一個新的文件
Ctrl+g 顯示當前文件名和行號,同 :f
折疊(fold)主要應用在復雜腳本的場合,特別是函數比較多,邏輯結構比較復雜的代碼。(:help folding)
有6種方式來折疊代碼
manual //手工定義折疊
indent //用縮進表示折疊
expr //用表達式來定義折疊
syntax //用語法高亮來定義折疊
diff //對沒有更改的文本進行折疊
marker //用標志折疊
indent
:set foldmethod=indent 設置縮進折疊,fdm為簡寫。只對當前會話有效,要使每次打開vim時折疊都生效,則在.vimrc文件中添加設置,如添加:set fdm=indent
zc 折疊與當前縮進相同的行
zo 打開折疊
zj 移到下一個折疊處
zk 移到上一個折疊處
zm 折疊所有可折疊標記
zr 展開所有折疊
[z 到當前打開折疊的開始
]z 到當前打開折疊的結束
marker
注意與后文的mark不是同一東西,:set fdm=marker
zf 創建marker,默認 #{{{,#}}}
Ctrl+v zf 進入可視化模式,選擇需要折疊的行,zc執行折疊。會自動加入 #{{{ code block #}}}
zf9j 創建從當前行起至以下9行的折疊標記,zc進行折疊。同9zf。類似有zf30G,從當前行折疊刀第30行
zf% 創建匹配的 {}, [], (), <> 的fold。不用執行zc
zd 刪除當前行上存在的折疊標記。僅當 "foldmethod" 設為 "manual" 或 "marker" 時有效
標記標記(mark)是vim提供的精確定位技術,只要你知道標記的名字,就可以使用命令直接跳轉到該標記所在的位置。vim中的標記都有一個名字,這個名字用單一的字符表示。大寫和小寫字母(A-Za-z)都可以做為標記的名字,這些標志的位置可以由用戶來設置;而數字標記0-9,以及一些標點符號標記,用戶不能進行設置,由vim來自動設置。(:help mark-motions查看更多幫助)
ms 定義一個標記s
`s 跳轉到標記s的地方
"s 跳轉到調劑s所在行首
`. jump to position where last change occurred in current buffer
`` jump back (to position in current buffer where jumped from)
:delmarks aA。使用:delmarks!刪除所有小寫(a-z)的標記
:marks 查看所有標記
插件待續
vimrc.vimrc 是目前自己用的比較習慣的vim風格。
參考
簡明 Vim 練級攻略
Vim Cheat Sheet for Programmers
VIM哲學
原文鏈接地址:http://seanlook.com/2014/08/07/vim-tips/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24814.html
閱讀 2924·2021-11-23 09:51
閱讀 3099·2021-11-15 11:39
閱讀 2979·2021-11-09 09:47
閱讀 2527·2019-08-30 13:49
閱讀 2113·2019-08-30 13:09
閱讀 3092·2019-08-29 16:10
閱讀 3504·2019-08-26 17:04
閱讀 984·2019-08-26 13:57