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 複製 複製當前游標所在行...