標籤:
Vim 常用技巧:
將斷行符號由預設的8個空格改為4個空格:
命令:set sw=4
修改tab為4空格:
命令:set ts=4
設定每一級的縮排長度:
命令:set shiftwidth=4
設定檔案的編碼:
set fileencoding=utf-8
進入vi的命令
vi filename :開啟或建立檔案,並將游標置於第一行首
vi +n filename :開啟檔案,並將游標置於第n行首
vi + filename :開啟檔案,並將游標置於最後一行首
vi +/pattern filename:開啟檔案,並將游標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢複filename
vi filename....filename :開啟多個檔案,依次進行編輯
移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
Backspace:游標左移一個字元
k或Ctrl+p:游標上移一行
j或Ctrl+n :游標下移一行
Enter :游標下移一行
w :游標右移一個字至字首
W:游標向前移動一個字串
b:游標左移一個字至字首
B:游標向後移動一個字串
e或E :游標右移一個字至字尾
ge:移動到前一個詞的末尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落開頭
{:游標移至段落結尾
nG:游標移至第n行首
n+:游標下移n行
n-:游標上移n行
n$:游標移至第n行尾
H :游標移至螢幕頂行
M :游標移至螢幕中間行
L :游標移至螢幕最後行
0:(注意是數字零)游標移至當前行首
^:移動至當前行的第一個非Null 字元
$:游標移至當前行尾
%:移動到大括弧,小括弧,中括弧對應的另一半括弧上。
gg:移動到文檔首
nG:移動到第n行首
G:移動到文檔尾
50%:移動到檔案中間
H:移動到視野首行
M:移動到視野中間
L:移動到視野尾行
Ctrl+G:顯示檔案名稱,總行數,當前位置
cd:顯示當前的工作目錄
ma [a-z] 對特定位置進行標記,使用‘x或`x跳轉到標記位置處,使用’‘或``跳回剛才位置
螢幕翻滾類命令
Ctrl+u:向檔案首翻半屏
Ctrl+d:向檔案尾翻半屏
Ctrl+f:向檔案尾翻一屏
Ctrl+b;向檔案首翻一屏
Ctrl+e:向問價尾滾一行
zz:將游標置於螢幕中間
zt:把游標移至螢幕頂部
zb:把游標移至螢幕底部
nz:將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部。
set scrolloff=n:將游標置於第n行處
插入文本類命令
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
ndw或ndW:刪除游標處開始及其後的n-1個字
dw 刪除一個單詞
daw 刪除一個單詞和單詞後面的空白字元
do:刪至行首
d$:刪至行尾
dn:刪除n+1行
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
J: 將游標所在行與下一行之間的分行符號刪掉
撤銷命令:
u:撤銷之前的操作,例如刪除操作
Ctrl+R 重做剛才的操作
. 使用點符號重複最後一次的修改操作
搜尋及替換命令
/pattern:從游標開始處向檔案尾搜尋pattern
?pattern:從游標開始處向檔案首搜尋pattern
n:在同一方向重複上一次搜尋命令
N:在反方向上重複上一次搜尋命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將檔案中所有p1均用p2替換
set ignorcase 尋找時忽略大小寫
set noignorecase 尋找時區分大小寫
set hlsearch 設定查詢結果高亮顯示
set nohlsearch 取消查詢結果高亮顯示
選項設定
all:列出所有選項設定情況
term:設定終端類型
ignorance:在搜尋中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標誌($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告資訊
warn:在轉到別的檔案時若沒儲存當前檔案則顯示NO write資訊
nomagic:允許在搜尋模式中,使用前面不帶“\”的特殊字元
nowrapscan:禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg:允許vi顯示其他使用者用write寫到自己終端上的資訊
最後行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :儲存當前檔案
:e filename:開啟檔案filename進行編輯
:x:儲存當前檔案並退出
:q:退出vi
:q!:不儲存檔案並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將檔案中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個檔案內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作
"?nyy:將當前行及其下n行的內容儲存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字儲存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字元儲存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到游標位置處。這裡?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
Vim更改字型2011年07月24日 星期日 上午 3:35
在常規Vim下, 字型沒有什麼可改的, 因為它的字型是受限於終端的設定的. 不過在GVim中, 你就有可以想怎麼改字型就怎麼改了.
Linux下改字型的主要命令就是這樣的:
:set guifont=Courier\ 14
你可以把Courier改成任何你想要的字型, 14就是你想要改的字型大小(單位是pt).
想要改Windows下的字型, 就要用下面的命令:
:set guifont=Courier:14
如果你不確定你的電腦上是否有那種字型, 你可以向下面這樣, 在上面的命令後加一個逗號, 然後加上另一個字型. 如:
:set guifont=Courier\ New\ 12, Arial\ 10
如果你的字型名中有空格或者逗號, 你就需要用一個反斜線轉義了. 如:
:set guifont=Courier\ New\ 12
這個命令就是將字型設成Courier New, 大小為12號, 不過只是在本次會話(session)中可用, 即關閉Gvim後, 又會回到原來的配置. 如果你想每次編輯檔案都能使用這個字型, 就應該在gvimrc檔案中加上一行上面同樣的命令(但注意不要set前面的冒號 ‘ : ‘ ).
[注] 當你在Windows, Linux(使用GTK+), Mac OS, 或者Photon, 你可以使用下面的字型來開啟一個字型列表: :set guifont=*
如果你想要讓你的字型設定根據編輯的檔案(代碼, 文本, 日誌等等)而改變, 你可以設定Vim讓它通過檔案的類型來改變當前的字型. 如, 如果你想在每次開啟一個文字檔(.txt)時使用Arial 12號字型, 那你可以在vimrc檔案中加上這樣一條:
autocmd BufEnter *.txt set guifont=Arial\ 12
Gvim視窗會在每次字型的改變在自動地改變視窗大小. 也就是說你使用了一個小的字型, 你就會預設地得到一個小的視窗. 如果你有幾個像上面的那樣的配置, 幾個不同的檔案類型, 對應著幾個不同的字型, 你會很明顯地感覺這種變化. 當你用開啟了另一種類型的檔案時, 字型和視窗大小都會改變.
[注] 你可以在Vim協助系統中知道更多的關於改變字型的資訊, 通過:help ‘guifont‘
|
一、vim開啟文檔:
1. vim 文檔名 普通方式開啟文檔
2. vim +n 文檔名 開啟文檔後,定位第n行
3. vim ,進入vim介面之後使用命令 :e 文檔名 開啟文檔,此方式可以在編輯一個文檔的同時開啟另外一個文檔
4.顯示當前文檔目錄:先按1,然後Ctrl+G
5. cd #改變vim的當前工作路徑
6.lcd #改變當前視窗的工作目錄
7.pwd #查看當前的工作路徑
8.set autochdir #自動設當前編輯的檔案所在目錄為當前工作目錄
二、多文檔編輯:
1. vim 文檔1名 文檔2名 ...
2. vim ,進入vim後使用:e 文檔名 開啟文檔
3.多文檔編輯的命令如下
:n 編輯下一個文檔。
:2n 編輯下兩個文檔。
:N 編輯上一個文檔。注意,該方法只能用於同時開啟多個文檔。
:e 文檔名 這是在進入vim後,不離開 vim 的情形下開啟其他文檔。
:e# 或 Ctrl+ˆ 編輯上一個文檔,用於兩個文檔相互交換編輯時使用。?# 代表的是編輯前一次編輯的文檔
:files 或 :buffers 或 :ls 可以列出目前 緩衝區 中的所有文檔。加號 + 表示 緩衝區已經被修改過了。#代表上一次編輯的文檔,%是目前正在編輯中的文檔
:b 文檔名或編號 移至該文檔。
:f 或 Ctrl+g 顯示當前正在編輯的文檔名稱。
:f 檔名 改變編輯中的文檔名。(file)
三、離開vim
:q 如果文本沒有修改,則會退出,否則會出現警告,且不能離開。
:q! 放棄所有修改,強行離開。
:wq 儲存後離開即使文檔沒有修改過,也會再儲存一次。
:x 儲存後離開,文檔如果沒有修改過則不會進行儲存動作,直接離開。
:w 文檔名 即:另存新檔。不加文檔名則是寫入原文檔。
:qa 或 qa! 在開啟多文檔的情況下離開 vim。a 即 all 的意思。
:ZZ 儲存並退出當前文本
將外部內容添加到已經開啟的文檔使用以下命令(雙引號+加號+p):
"+p
四、 多視窗編輯
:sp 文檔名 在新視窗中開啟文檔
Ctrl+w+n建立一個視窗
兩次Ctrl + w可以切換視窗
Ctrl+t 跳轉至上一個視窗
:q 退出當前編輯視窗
協助文檔中使用 Ctrl+] 來跳轉超連結,使用Ctrl+T或者Ctrl+O來跳轉到前一個位置。
修改文本的三種方法:
操作符-動作,可視模式以及文字物件
c2wxxx 修改兩個單詞的距離,並插入xxx
cc 會修改一整行(會保留這一行的縮排)
c$ 修改到行尾
x=dl 刪除當前游標下的一個字元
X=dh 刪除游標左邊的字元
D=d$ 刪除到行尾
C=c$ 修改到行尾
s=cl 修改一個字元
S=cc 修改一整行
p 在游標後面粘貼剛才刪除的內容
P 在游標前面粘貼剛才刪除的內容
xp 先刪除,再粘貼,刪除一個字元之後粘貼到另一個字元的後面,例如teh操作之後就變成了the
x 刪除游標下的字元 ("dl" 的縮寫)X 刪除游標前的字元 ("dh" 的縮寫)D 從當前位置刪除到行尾 ("d$" 的縮寫)dw 從當前位置刪除到下一個單詞開頭db 從當前位置刪除到前一個單詞的開頭diw 刪除游標上的單詞 (不包括空白字元)daw 刪除游標上的單詞 (包括空白字元)dG 刪除到檔案末dgg 刪除到檔案首
可視模式:
v 使用v進入可視模式,然後選擇任意多的文本
o 在可視模式下選中文字後,使用o即可將游標移動至被選中的另一端
y 拷貝
yy 拷貝一整行
yw 拷貝一個單詞,然後使用p粘貼
文字物件:
cis 修改一個句子,表示 change inner sentence
cas 表示修改一個句子,與上面操作的區別在於as包含句子後面的空白字元
das 刪除一個句子,包括句子後面的空白字元
替換模式:
R 大寫的R命令可以使用連續的替換模式,使用小寫r只能替換一個字元,使用退格鍵Backspace來回複被替換的字元。。
~ 修改游標下字元的大小寫
I 大寫的i在當前行的第一個非Null 字元開始插入
A 移動到行尾開始插入
來自為知筆記(Wiz)
Vim 常用技巧: