vim命令筆記

jopen 11年前發布 | 11K 次閱讀 Vim

一般模式:移動光標

h 或  ←                    #光標向左移動一個光標
j  或  ↓                    #光標向下移動一個光標
k 或  ↑                    #光標向上移動一個光標
l  或  →                    #光標向右移動一個光標
移動多行,30j 或者 30↓

Ctrl + f                    #向下移動一頁
Ctrl + b                   #向上移動一頁
Ctrl + d                   #向下移動半頁
Ctrl + u                   #向上移動半頁

+                           #移動到非空格的下一行
-                            #移動到非空格的上一行
n<space>               #n表示數字,20 + 空格,光標在所在行移動20個字符距離

0                           #數字0,移動到行的最前字符(常用)
$                           #移動到行尾(常用)

H                           #移動到屏的最上一行
M                           #移動到屏的中間一行
L                            #移動到屏的最下一行

G                           #移動到文件的最后一行(常用)
nG                          #n為數字,20G。移動到文件的第20行
gg                          #移動到文件第一行(常用)
n<Enter>                #n為數字。向下移動n行(常用)

一般模式:搜索與替換

/word                      #從光標開始,向下查找個名字為word的字符串。(常用)
?word                      #從光標開始,向上查找個名字為word的字符串。 
n                            #n為按鍵,重復前一個搜索動作
N                            #N為按鍵,重復與前一個搜索動作相反的操作

:n1、n2s/f_word/i_word/g    #從第一行和n2行,i_word替換f_word。例子:11、22s/find/inste/g  (常用)
:1、$s/f_word/i_word/g        #從第一行和最后一行,i_word替換f_word。(常用)
:1、$s/f_word/i_word/gc        #從第一行和最后一行,i_word替換f_word,且替換前提醒用戶確認(常用)

一般模式:刪除、復制與粘貼

x,X                        #x刪除后一個字符,X刪除前一個字符
nx                           #n為數字,連續向后刪除n個字符
dd                          #刪除整行(常用)
ndd                         #n為數字,向下刪除n行
d1G                         #刪除光標所在位置到第一行的所有數據
dG                          #刪除光標所在位置到最后一行的所有數據
d$                          #刪除光標所在位置到行尾的字符串
d0                          #刪除光標所在位置到行首的字符串

yy                           #復制光標所在的那一行(常用)
nyy                         #n為數字,復制光標所在的向下n行。例:20yy(常用)
y1G                         #復制光標所在行到第一行
yG                           #復制光標所在行到最后一行
y$                           #復制光標到行尾的字符串
y0                           #復制光標到行首的字符串

p,P                        #p將復制內容粘貼到光標的下一行,P將復制內容粘貼到光標的上一行(常用)
J                             #將光標所在行與下一行結合成同一行
c                             #重復刪除多個數據,例如 10cj

撤銷和回復

u                            #復原前一個操作
Ctrl + r                    #重做上一個操作

.                             #這是個小點,重復前一個動作

進入編輯模式

i、I                          #插入,i 光標處插入,I 在當前第一個非空符處開始插入(常用)
a、A                        #a 當前光標下一個字符開始插入;A 從光標所在行最后一個字符處開始插入(常用)
o、O                        #o 當前光標下一行插入新的一行;O 光標上一行,插入新行(常用)
r、R                         #替換:r 替換光標所在那一個字符;R 一直替換所在文字,直到按下Esc鍵為止(常用)

退回一般模式

Esc                          # 退回一般模式

命令行命令模式

:w                            #寫入硬盤
:w                            #強制寫入該文件
:q                            #離開 vim
:q!                           #強制退出,不保留修改
:wq                          #寫入,并退出

:e!                           #將文件還原到最原始狀態

ZZ                           #若文件沒有更改,則不存儲離開;若修改,則存儲后退出
:w [file name]           #將編輯內容存儲到file name文件
:r  [file name]           #將file name文件寫入光標所在行的后面

:n1、n2w[file name]   #將n1行到n2行寫入到file name文件
:!command               #暫時離開vim到命令模式執行command。例 !ls /home
:set nu                    #顯示行號
:set nonu                 #取消行號

塊選擇

v                            #字符選擇,會將光標經過的地方反白選擇
V                            #行選擇,將光標經過的行反白選擇
Ctrl + v                   #塊選擇,可以用長方形的方式選擇數據
y                            #復制反白的地方
d                            #刪除反白的地方

多文件編輯

:n                           #編輯下一個文件
:N                           #編輯上一個文件
:file                        #列出當前vim打開的所有文件

多窗口功能

:sp[file name]          #打開一個新的窗口,加filename,則新窗口打開新文件,否則內容同一
Ctrl + wj                  #先按Ctrl,再w,放開再按j,光標進入下一個窗口
Ctrl + wk                 #同上,方向相反
Ctrl + wq                 #當前的退出,跳到下個窗口

vim環境設置

:set nu                    #
:set hlsearch            #
:set backup              #
:set ruler                  #
:set showmode               #
:set backspace=(012)      #
:set all                           #
:syntax(off|on)               #

DOS與Linux的換符

dos2unix -kn    file   newfile
unix2dos -kn    file   newfile
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!