vim實用技巧學習 part one
入門使用命令
dw
刪除光標下的單詞
/
/the 高亮顯示查找的匹配項 the
vit
<a href=" ">text</a> //當光標在a上面的時候 實用vit命令光標跳轉到text上面去 高亮text並且光標在t上面
v進入可視模式
it文本對象選中<a>
標籤內的文本
使用vim的出場配置
想知道vim是否是出廠配置,在啓動vim的時候這樣運行$vim -u NONE -N
-u NONE 讓vim啓動時不加載你的vimrc,你的定製就不會生效,插件也會被禁用。當vim不加載vimrc的時候,會進入 vi兼容模式,-N標識則會使能‘nocompatible’選項,防止進入vi兼容模式。
vim解決問題的方式
.命令的使用
.
命令可以讓我們重複上一次的修改(查看更多:h .
)上一次的修改包括多個命令的操作
使用x
命令會刪除光標下的字符,在這種情況下使用.
命令可以重複刪除光標下的字符
使用u可以撤銷上一次的修改(當時.
命令不能重複u
的撤銷命令)
dd
命令事刪除整一行
>G
增加當前行到文檔結尾處的縮進層級
j
光標移至下一行
.命令是一個微型的宏(macro)
不要自我重複
對於在結尾添加;分號這個常見的操作:
$
光標移至結尾
a
進入插入模式 類似i
,Esc
退回普通模式
A
命令在當前行的結尾添加內容,不管光標在哪裏,輸入A就會進入插入模式,並將光標移至行尾,等於$a
其他複合命令:
複合命令 | 等效的長命令 |
---|---|
C | c |
s | cl |
S | ^c |
I | ^i |
A | $a |
o | A |
O | ko |
該複合命令都是從普通模式切換到插入模式
以退爲進
在一個字符的前後各添加空格:
f字符
s空格字符空格<Esc>
;
.
#即可將當前行另一個字符的前後各加空格解釋:
f字符
將光標到最近查找字符的地方;
重複上一步的f F t T命令,
反向重複上一步的f F t T命令
執行、重複、回退
當你重複操作的時候,按鍵過快,導致錯誤的時候,如何回退
可重複的操作及如何回退
目的 | 操作 | 重複 | 回退 |
---|---|---|---|
做一個修改 | {edit} | . | |
在行內查找下一個指定字符 | f{char}/t{char} | ; | , |
在行內查找上一指定字符 | F{char}/T{char} | ; | , |
在文檔中查找下一處匹配項 | /Pattern | n | N |
在文檔中查找上一處匹配項 | ?Pattern | n | N |
執行替換 | :s/targert/replacement | & | u |
執行一系列修改 | qx{changes}q | @x | u |
查找並手動替換
將文中所有的一個content替換爲copy
:%s /content/copy/g
或者另一種方法:
:/content
#光標移到content上*
#*命令查找所有的content,該命令有兩個作用
- 光標移到下一個content上
- 所有出現的content高亮顯示 如果沒有高亮運行:
set hls
cwcopy<Esc>
#cw 刪除當前光標下的單詞,自動進入插入模式n
#跳轉到下一個匹配項.
#重複修改
結識.
範式
理想模式:一鍵移動(移動到下一個匹配項),另一鍵執行
vim模式
把撤銷單元切成塊
u
命令進行撤銷最新的修改,從進入插入模式開始,知道返回普通模式爲止,在此間的輸入或刪除的任何內容都被當成一次修改,合理使用<Esc>
,可以使撤銷用於單詞或者句子
所有每次有停頓的時候,就要退出插入模式,當我要繼續寫的時候,按A
命令即可在原來的地方繼續寫作
當處於插入模式,光標位於行尾,另起一行的方式是回車,但是可以使用<Esc>o
在插入模式中移動光標會重置修改狀態
如果在插入模式使用了<up>
、 <down>
、<left>
、<Right>
就會產生新的撤銷塊
這個類似切換爲普通模式然後使用h、j、k或l(左上下右)命令對光標進行移動,唯一區別是我們並沒有退出插入模式。這個也對.
命令有影響
構造可重複的修改
the end is nig**h** 我的光標在h上面,我要刪除nigh這個單詞,以下有三種方法
反向刪除
db
#刪除從光標起始爲到單詞開頭的內容,但是會原封不動留下最後一個字符‘h’- x #刪除h字符
正向刪除
b
#將光標移到單詞的開頭dw
#刪除整個單詞
刪除整個單詞
- daw #直接刪除一個單詞,aw文本對象,而不是動作命令(delete a word)
比較
dbx
、bdw
、daw
反向刪除方案包含兩步操作:db
命令刪除至單詞的開頭,而後x
命令刪除一個字符。如果我們跟着執行一次. 命令,它會重複刪除一個字符( .
= = x
)。
正向刪除方案也包含兩步。這一次,b
只是一次普通的移動,而dw
完成修改。此時用. 命令會重複dw
,刪除從光標位置下個單詞開頭的內容。不過因爲我們剛好已經在行尾了,並沒有“下一個單詞”,所以在這個場景裏. 命令沒什麼用。不過,至少它代表了一個更長點的操作(.
= = dw
)。
daw
操作不僅僅刪除了該單詞,它還會刪除一個空格,因此光標最終會停在單詞“is”的最後一個字符上。如果此時我們使用.
命令,它會重複上次刪除單詞的命令。這一次, . 命令會做真正有用的事情(.
= = daw
)。
用次數做簡單的算術運算
很多普通模式命令都可以帶一個次數前綴,這樣Vim 就會嘗試把該命令執行指定的次數,而不是隻執行一次(見:h count)。
<C-a>
和<C-x>
命令分別對數字執行加和減操作。在不帶次數執行時,它們會逐個加減,但如果帶一個次數前綴,那麼就可以用它們加減任意整數。例如,如果我們把光標移到字符5 上,執行10<C-a>
就會把它變成15。
當光標不在數字上,使用ctrl+a
將會在當前行正向查找數字,並跳轉到那裏去
.blog, .news { background-image: url(/sprite.png); }
.blog { background-position: 0px 0px }
我們要複製最後一行並且對其做兩個小改動,即用“news”替換單詞“blog”,以及把“0px”改爲“-180px”。我們可以運行yyp 來複制此行,然後用cw 來修改第一個單詞。光標在第二行的第一個字符
yyp
#複製當前一行- cW.news
<Esc>
#cW刪除第一個單詞直到空格結束,並且進入插入模式,輸入.news 180<ctrl+x>
#自動調到第一個數字,並對其減180007使用
<ctrl +a >
其結果是010,因爲vim 把0開頭的數字爲八進制的數字
vim實用技巧notes
吐槽以下csdn的markdown的theme簡直是難看