vim快捷鍵總結

2021-08-07 16:12:04 字數 4340 閱讀 1682

vim四種模式

命令模式(command-mode)

插入模式(insert-mode)

可視模式(visual-mode)

正常模式(normal-mode)

vim快捷鍵x刪除

u還原u撤銷當前行的所有操作

dd刪除整行

d刪除到行尾

j刪除換行符

de刪除單詞後面的部分

dw刪除到單詞後面的空格部分

9j合併後面的9行

i在游標前輸入

5ihello+esc

輸入hellohellohellohellohello

i在行首輸入

a在游標後輸入

a在行末輸入

o在當前行下一行輸入

o在當前行上一行輸入

e移動到單詞的結尾

e移動到單詞的結尾

33g跳轉到33行

ctrl+o

臨時進入command-mode

v進入visual-mode

i i o o

進入insert-mode

:e!重新開啟vim檔案

yy複製一行

9yy複製9行

y9l向後複製9個字元

yaw複製乙個單詞,游標在單詞任意位置

ynw複製n個單詞

ynj向下複製n行

ynk向上複製n行p貼上

^回到行首

o回到下一行行數

$回到行尾

l````

當前螢幕的下「last」

m當前螢幕的中「middle」

h當前螢幕的上「home」

g文章尾

gg文章首

30%跳轉到文章的30%

:set nu

顯示行號

:set number

顯示行號

:set nonu

取消顯示行號

:set nonumber

取消顯示行號

:scriptnames

檢視vimrc在哪

:set tabstop=4

設定tab鍵為4個空格

:set tabstop=0

取消tab鍵為4個空格

:set noignorecase  

大小寫敏感

:set ignorecase

大小寫無關

?/string

同上,預設向上查詢

/string

外按/鍵後,按上下鍵可以找到以前查詢的記錄,同樣的 :也有記錄

·移動到上次的修改行

* :查詢下乙個游標所在單詞 

+移動到下一行行首

-移動到上一行的行首

ctrl+g

顯示當前位置

:set ruler

設定右下角顯示行號,所佔比分比

ctrl+u

` 向上翻半頁

ctrl+d

向下翻半頁

ctrl+e

向上翻一行

ctrl+y

向下翻一行

ctrl+b

向上翻一屏

ctrl+f

向下翻一屏

zz當前行滾動於螢幕中間

zt當前行滾動於螢幕置頂

zb當前行滾動於螢幕置尾

%匹配到相應括號處

>>

向右移動本行一段距離

<<

向左移動本行一段距離

:20,30>>

把20行到30行向右移動一段距離

:set nohlsearch

取消高亮

:set hlsearch

高亮顯示查詢結果

:nohlsearch

去掉當前顯示的高完(一次性)

:%s/str1/str2/g

替換每一行的 str1為 str2

:10,20s/str1/str2/g

替換從行10到行20之間的 str1為 str2

:10,$s/str1/str2/g

替換從行10到最後一行之間的 str1為 str2

:s/str1/str2/g

替換當前行的 str1為 str2

.重複執行命令 

:10,$ w test2.cpp

取行10到最後一行內容,儲存到test2.cpp

:r class/user.hpp

讀取檔案中的內容,插入到當前行的後面

dw刪除乙個單詞(游標後部分)  不如:daw實用    

d4w刪除4個單詞    

d$刪除當前游標到行尾    

d^刪除當前游標至行首 d換成c效果是一樣的,只是操作完會變成insert模式   

dnw刪除n個單詞   

dnj向下刪除n行      

dnk向上刪除n行 

x刪除左邊的字元,相當於<-鍵,x刪除當前字元  

d相當於d$  

c相當於c$  

s相當於c1  

s相當於cc

r替換當前字元,但不會進入insert模式    

3r把後面3個字元替換掉    

r替換模式

.重複上一次操作

v進入visual模式    

v進入可視行模式

vjjd

刪除3行  

ctrl+v

可視塊模式

p貼上至游標前    

p貼上至游標後    

3p貼上3次   

2p貼上最後第二次的刪除的內容

ctrl+z

暫停vi

回到unix提示符

fg即可回到vi

nb向前移動n個單詞

nw向後移動n個單詞nw這個操作很慢,不知何故以空格、標點符號與單詞的分界為分隔符。(幾個連續的標點視為乙個單詞)

nb向前移動n個單詞這個操作很慢只使用空格做為分隔符。

nw向後移動n個單詞這個操作很慢只使用空格做為分隔符。

s刪除乙個字元並進入編輯模式

s刪除一整行進入編輯模式相當於cc

ns刪除後面n個字元並進入編輯模式

~更改字母的大小寫,同時游標進入到下乙個字元。

n~把後面n個字母的大小寫狀態改變

dw刪除單詞後面部分

db刪除單詞前面部分

dbw\wdb

刪除整個單詞(游標位於單詞中間)

e相當於w,向後移動乙個單詞不同的是,w移動到單詞第乙個字元上,e移動到單詞最後乙個字元上。  所以ea,可以給本單詞追加內容

dd$ 的簡寫

cc$的簡寫

nh、nl

移動到距離螢幕頂部和頂部n行的位置

d/it

向後刪除到it之前的位置(不刪it)

d?it

向前刪除到it之前的位置(刪除it)

e移到單詞的結尾(忽略標點符號)

e移到單詞的結尾

:g/keyword/d

刪除包含keyword字串的行

:%s/^\n$//g

刪除空行

dfi向右刪除第乙個i的位置(包括i)  dti:同dfi,只是不包括i

ng跳轉後,可使用``回到上一次的位置,''功能一樣,不過只是回到前次位置所在行的開頭,而不是確定的位置上。

fx本行中向右搜尋x,游標置於x上。  

fx向左搜尋。

;重複上乙個搜尋命令,方向相同。  

,重複上乙個搜尋命令,方向相反。

tx同fx,只是游標置於x之前。 tx類似

z,enter

將游標所在行移動到螢幕頂部(同於zz)

z.將游標所在行移動到螢幕中間

z-將游標所在行移動到螢幕尾部

nz,enter

將第n行移動到螢幕頂部,同樣的,z. 與 z- 前也可以加數字

^f向前(下)一整屏

^b向後(上)一整屏

^d向前(下)一半屏

^u向後(上)一半屏

:set cindent

所有的set都可以簡寫為se,雖然只節省了乙個字元, 譯者注) 需要注意的是cindent控制縮排量是通過shiftwidth選項的值, 而不是通過tabstop 的值,

shiftwidth的預設值是8(也就是說, 乙個縮排為8個空格, 譯者注), 要改變預設的設定, 可以使用":set shiftwidth=x"命令, 其中x是你希望乙個縮排量代表的

空格的數目.

=到下乙個空行上

c.vim

:如果是用root賬號的,把檔案複製到/usr/share/vim/vim70中解壓沒有用的,不存在 $home/.vim 這個目錄,沒辦法,只能新建個目錄,然後把壓縮包

cp到這個目錄,再unzip即可。在 ~/.vimrc 中 寫入 filetype plugin on 

vim快捷鍵總結

按下方向鍵可以快速選擇編譯過的命令 移動游標命令 a級 num g 移動到緩衝區的第num 行 gg 移動到緩衝區的第一行 g 移動到緩衝區的最後一行 gd 跳至當前游標所在的變數的宣告處 跳到與當前括號匹配的括號處,如當前在處 c級 h 移動游標到當前螢幕上最上邊的一行 m 移動游標到當前螢幕上中...

vim 快捷鍵技巧總結

vi vim 是上linux非常常用的編輯器,很多linux發行版都預設安裝了vi vim vi vim 命令繁多但是如果使用靈活之後將會大大提高效率。vi是 visual inte ce 的縮寫,vim是vi improved 增強版的vi 在一般的系統管理維護中vi就夠用,如果想使用 加亮的話可...

VIM 常用快捷鍵總結

vim快捷鍵 dd 剪下 刪除游標所在行內容 ndd 剪下n行 刪除游標所在行開始及以下n行的內容 d 刪除游標所在位置之後的內容,至行尾 d0 刪除游標所在位置之前的內容,至行首 dw 刪除游標所在位置的單詞 x 刪除游標所在位置字元 x 刪除游標所在位置前乙個字元 yy 複製 複製當前游標所在行...