vim實用技巧學習part_one

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

​ 該複合命令都是從普通模式切換到插入模式


以退爲進

​ 在一個字符的前後各添加空格:

  1. f字符

  2. s空格字符空格<Esc>

  3. ;

  4. . #即可將當前行另一個字符的前後各加空格

    解釋:

    1. f字符將光標到最近查找字符的地方
    2. ;重複上一步的f F t T命令
    3. ,反向重複上一步的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

​ 或者另一種方法:

  1. :/content #光標移到content上
  2. * #*命令查找所有的content,該命令有兩個作用
    1. 光標移到下一個content上
    2. 所有出現的content高亮顯示 如果沒有高亮運行:set hls
  3. cwcopy<Esc> #cw 刪除當前光標下的單詞,自動進入插入模式
  4. n #跳轉到下一個匹配項
  5. . #重複修改

結識.範式

​ 理想模式:一鍵移動(移動到下一個匹配項),另一鍵執行


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)

比較

dbxbdwdaw

​ 反向刪除方案包含兩步操作: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> #自動調到第一個數字,並對其減180

    007使用<ctrl +a >其結果是010,因爲vim 把0開頭的數字爲八進制的數字


vim實用技巧notes
吐槽以下csdn的markdown的theme簡直是難看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章