Gvim常用命令


這是一篇較全的vim命令。特記錄下來,有稍作修改說明。摘http://hi.baidu.com/ui176/item/b00ae7c0eeaba52847d5c0c5
Vim常用命令
跳到指定的行號:
在命令行下直接輸入:行號
比如跳到500行,輸入:500即可
整體縮進的操作:
在命令行模式下,按住shift+v進入可視行選擇狀態,使用shift加上下左右方向鍵選擇好整體的代碼塊,然后再按住shift+>或者shift+< 向右或者向左縮進即可整體縮進。 Vim多行縮進技巧 首先進入命令狀態,然后按v進入visual狀態,一定要在可視狀態,選擇多行()注意這里的選擇可不是用鼠標選擇,而是使用shift+方向鍵進行選擇,用>或<縮進或縮出
gvim 查找之后結果的高亮如何關閉?
:noh
 
顯示菜單欄;set go=menu;
不顯示菜單;set go=;
顯示底部滾動條:set go+=b;
顯示右側和底部滾動條:set go+=rb;
智能補全;ctrl+x 后再ctrl+o或者ctrl+p;
vim在插入狀態下按ctrl+p鍵就會顯示你曾經輸入過的字符
「將當前光標下的列高亮」——:set cuc
 
光標移動:
w    :光標以單詞向前移動 nw:光標向前移動n個單詞光標到單詞的第一個字母上
b    :與w相反
^    :移動光標到行首第一個非空字符上去
$    :移動光標到行尾第一個非空字符上去
%    :移動到與制匹配的括號上去(),{},[],<>等。
nG    :跳轉到第n行。
 
可視模式
v        :可視模式
V        :選擇行
CTRL-V or CTRL-Q    :選擇塊
 
文本操作
y    :復制選擇的內容
ye    :復制一個單詞
yy    :復制一行
p    :粘貼
x    :可視模式下,x為剪切選擇內容
viw    :選中光標當前所在處的單詞
yiw    :復制光標當前所在處的單詞
 
4.vi 編輯器的插入命令:
i 在光標處插入正文
I 在一行開始前插入正文
a 在光標后追加正文
A 在行尾追加正文
o 在光標下面新增一行
O 在光標上面先增一行
 
vi下的復制方法
方法一:先ma標記當前位置為a,移動到新的位置,再y`a或者y’a復制從標記位置a到當前位置的內容。`和’的區別:`以字符為單位,’以行為單位。這個方法應該是所有vi 都適用的。
選擇寄存器復制內容
這有點復雜.把這節拿出來,多看幾遍;還有,一定要多做實驗.
“< 字母>yy可以把一行文本拷貝到寄存器中(這里的寄存器是vi的術語,指可以存放剪切和拷貝下來的東西的地方), <字母>里面的字母必須是a到z之間的一個. “<字母>dd可以把 一行剪切下來放到寄存器里面. 你可以在yy或者dd前面用數字指明要拷貝或者剪切的行數.如果<字母>中的字母是大寫的話,意味着把文本插入到寄存器中已有的文本之前. “<字母>p把文本插入到光標之后,”<字母>P把文本插入到光標之前.如果寄存器中含有某一行的開頭或結尾,這一行將會被放到另一合適的行. Y是yy的快捷方式. 還有, y$, yH, yM,等等,都是可以用的.d命令也是一樣的.如果要快速的剪切和粘貼, 你就無須指定寄存器了.如果這樣的話,你就不能往寄存器里面添加文本了.而且只要有一個刪除命令的話, 寄存器中的東西就沒有了(包括x命令). 舉例來說,如果要移動上一段的話,你可以把光標移到段落的開頭,敲”a13dd,再把光標移到你想要放文本的地方,敲”ap,就可以把那段文本放到光標所在的行后面. 現在,大概你想要剪切和粘貼文本到不是行末尾的區域去.我們 來看如何做到這一點:我們可以使用 m<字母> 命令來標記一個區域,這個字母可以和剪切/粘貼寄存器的字母相,因為它們是保存在內存中的不同位置. 然后, 敲”<寄存器>`<字母>[yy或者dd], 這里的寄存器就是要保存文本的那個寄存器,<字母> 是用來標記的,yy和dd是你的操作.
~    :修改光標下字符的大小寫,並移動到下一個字符。這不是一個操作符 (除非設置了 ’tildeop’),所以你不能連接一個動作命令。這個命令在可視模式下也有效,它會改變被選中的所有文本的大小寫。
I    :移到當前行的第一個非空字符並啟動插入模式
A    :移動到行尾並啟動插入模式
o    :在當前行的下面另起一行
O    :在當前行的上面另起一行
dw    :刪除一個單詞,需將光標移到單詞的第一個字母上,按dw,如果光標在單詞任意位置,用daw
dd    :刪除一行
cw    :修改一個單詞
dtx    :從光標所在處開始,刪除到”x”。
d/text    :刪除從文本中出現”text”中所指定字樣的位置,一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容
cc    :改變整行
C$    :改變到行尾
shift + < 左移一行
shift + > 右移一行
<%或>%    :來將{,(或[等符號括起來的文本都左移或右移;這時候,你必須把光標放在這些符號({,(或[)上面.
u        :undo
CTRL+R    :re-do
J        :合並一行
CTRL+p     :自動完成功能(在輸入模式使用)
CTRL+g    :查看當前文件全路徑
:n1,n2 co n3         :將 n1 行到 n2 行之間的內容拷貝到第 n3 行下。
:n1,n2 m m3         :將 n1 行到 n2 行之間的內容移至第 n3 行下。
:n1,n2 d             :將 n1 行到 n2 行之間的內容刪除。
:n1,n2 w filename     :將 n1 行到 n2 行之間的內容保存到文件 filename 中
使用剪貼板
"*y    :將內容復制到剪貼板
"*p    :將剪貼板的內容粘貼出來
存盤:
:q!         :不存盤退出
:e!         :放棄修改文件內容,重新載入該文件編輯
:wq         :存盤退出
:w            :存盤
:browse o    :用瀏覽器打開文件
:browse w    :用瀏覽器保存文件
:wqa        :保存並關閉所有文件
:qa            :關閉所有文件
:browse wa    :用瀏覽器保存所有文件
u: 撤銷前一次的操作
ZZ:保存當前文檔並退出VIM
幫助
:help             :查看幫助文檔,在這之中,按CTRL+] 進入超連接,按CTRL+O 返回。
:help subject     :看某一主題的幫助,ZZ 退出幫助
:help {主題}    :例如,要獲得 “x” 命令的幫助,輸入如下命令:
:help x
:help CTRL-A
查找
fx             :移動到一個指定的字符,單字符查找命令是最有用的移動命令之一。”fx” 命令向前查找本行中的字符 x。提示:”f” 表示 “Find”。
/pattern    :正方向搜索一個字符模式
?pattern     :反方向搜索一個字符模式
然后按n 繼續向下找
精確查找整個單詞    :如果你輸入 “/the”,你也可能找到 “there”。要找到以 “the” 結尾的單詞,可以用:
/the\>
“\>” 是一個特殊的記號,表示只匹配單詞末尾。類似地,”\<” 只匹配單詞的開頭。 這樣,要匹配一個完整的單詞 “the”,只需:
/\<the\>
把光標放到某個單詞上面,然后按*號鍵,表示查找這個單詞。”#” 命令在反向完成相同的功能。
查找整個單詞:/\<word\>
:set hlsearch         :高亮顯示查找到的單詞
:set nohlsearch     :關閉改功能
查找替換:
way1:
/【word】 :查找某個word
? 命令功能與 “/” 的功能類似,但是是反方向查找
cw【newword】:替換為新word
n: 繼續查找
.: 執行替換
way2:
:s/string1/string2/g:在一行中將string1替換為string2,g表示執行用c表示需要確認
:num1,num2 s/string1/string2/g:在行num1至num2中間將string1替換為string2
:1,$ s/string1/string2/g:在全文中將string1替換為string2
如果替換時需要確認,在g后面加上一個c(confirm)
如果要全文搜索,在”s/”前面加上一個%,例如”:% s/”
書簽
m[a-z]    :在文中做標記,標記號可為a-z的26個字母,用`a可以移動到標記a處
“        :最后編輯的位置
:marks    :你可以用如下命令取得所有的標記的列表:
r:替換當前字符
nr字符:替換當前n個字符
分割窗口
:split            :分割一個窗口
:split file.c     :為另一個文件file.c分隔窗口
:nsplit file.c    :為另一個文件file.c分隔窗口,並指定其行數
CTRL+W            :在窗口中切換
:close            :關閉當前窗口
寫文件
:n1,n2 write temp.c 將本文件中的n1,到n2行寫入temp.c這個文件中去
宏命令
q[a-z] 開始記錄但前開始的操作為宏,名稱可為【a-z】,然后用q終止錄制宏。
用reg顯示當前定義的所有的宏,用@[a-z]來在當前光標處執行宏[a-z].
設置
前提操作:如果你不知道你的 vimrc 在什么地方,可以使用如下命令
:scriptnames                :確認設置文件的路徑。
:set nocompatible            :與Vi兼容
:set ruler                    :總在 Vim 窗口的右下角顯示當前光標位置。
:set showcmd                :在 Vim 窗口右下角,標尺的右邊顯示未完成的命令。例如,當你輸入 “2f”,Vim 在等你輸入要查找的字符並且顯示 “2f”。當你再輸入w,”2fw” 命令被執行,”2f” 自動消失。
:set incsearch                :在查找模式輸入完前顯示匹配點。
:map Q gq                     :這定義一個鍵映射。下一節會介紹更多的相關內容。這將定義 “Q” 命令用來完成與 “gq” 操作符相同的功能,這是在 Vim 5.0 版前 “Q” 命令的作用。如果沒有設置這個映射, “Q” 會啟動 Ex 模式,這也許不是你想要的情況。
:set number / set nonumber     :顯示/不顯示行號
:set ruler /set noruler        :顯示/不顯示標尺
:set sy on                    :設置語法高亮
:set colo {theme}            :設置主題顏色
:set guifont=Courier_New:h10:cANSI    :設置字體(注意字體名之間的空格用下划線代替)
:set tabstop=4                        :設置tab鍵的寬度
:set nobackup                        :不要備份
:set nowritebackup                    :不要備份
au GUIEnter * simalt ~                :界面最大化
簡單鍵盤映射
:map    :查看當前系統的鍵盤映射。
映射可以使你把一系列 Vim 命令綁定為一個單鍵。假設你要用一個大括號將一個特定的 單詞括起來。例如,把 “amount” 變成 “{amount}”。用 “:map” 命令,就可以讓 F5 來 完成這個工作。命令如下:
:map <F5> i{<Esc>ea}<Esc>
Note:
在輸入這個命令時,<F5> 要用四個字符表示。相似地,輸入 <Esc> 不是直接按 <Esc> 鍵,而是輸入五個字符。在讀這份手冊要注意這些區別!
讓我們來分解一下這個命令:
<F5>        F5 功能鍵。這是命令的觸發器。當這個鍵被按下時,相應的命令即被執行。
i{<Esc>     插入 { 字符。<Esc> 鍵用於退出插入模式。
e           移動到詞尾。
a}<Esc>     插入 } 到單詞尾。
執行 “:map” 命令后,要在單詞兩端加上 {},只需要移到單詞上的第一個字符並按 F5。
在這個例子中,觸發器是一個單鍵;它還可以是任何字符串。但若你使用一個已經存在 的 Vim 命令,該命令將不在有效。所以你最好避免出現這種情況。一個可用於映射的鍵是反斜杠。因為你很可能想定義多個映射,那就加上另一個字符。
你可以映射 “\p” 為在單詞兩端加園括號,而映射 “\c” 為加花括號,例如:
:map \p i(<Esc>ea)<Esc>
:map \c i{<Esc>ea}<Esc>
你需要在敲入\后,立即敲入p,以便 Vim 知道它們組成一個命令。
如果組合鍵中間有CTRL,就要縮寫為C,例如CTRL-Tab要寫成<C-Tab>
常用選項
Vim 中有很多選項。大部分你很少用得上。我們在這個介紹一些常用的。別忘了你可以 通過 “:help” 命令獲得更多的幫助。方法是在選項命令前后加上單引號,例如:
:help ‘wrap’
如果你搞亂了一個選項,你可以通過在選項后加上一個 & 號把它恢復到默認值。例如:
:set iskeyword&
禁止折行
Vim 通常會對長行自動換行,以便你可以看見所有的文字。但有時最好還是能讓文字在一行中顯示完。這樣,你需要左右移動才能看到一整行。以下命令可以切換換行方式:
:set nowrap
當你移到到那些不能顯示的文字上,Vim 會自動向右滾動讓你看到后面的文字,要一次滾 動十個字符,這樣就行了:
:set sidescroll=10
這個命令不改變文件中的文字,只改變顯示方式。
Tab操作
tabs            :查看當前打開的tab的文件路徑。
tabnew            :新建tab。
tabnext,gt        :切換到下一個tab。
tabprevious,gT    :切換到上一個tab。
tabclose        :關閉當前tab。
tabfirst        :切換到第一個tab。
tablast            :切換到最后一個tab。
tabrewind        :切換到上一個激活過的tab。
批量注釋
移動光標到需要注釋掉的第一行開頭,然后按Ctrl-v(如果使用了VIM的mswin.vim,則Ctrl-v表示粘貼,這時需要用Ctrl-q代替)進入Visual blockwise模式,這個模式是Visual mode的一種,相當於UltraEdit中的塊選擇。然后按j選擇上所有需要注釋行的行首(看起來效果是選擇了第一列),輸入I//再按ESC就可以在每一行開頭插入//了。
折疊文本
zf    :折疊你選中的文本。
zd    :展開你光標所在處的折疊文本。
zD    :展開所有折疊的文本。
縮寫
VI/VIM支持用一個縮寫字符串代替一個長的字符串,比如 :ab hw hello world, 然后在Insert mode下輸入“hw ”(不包括引號)后VIM就自動替換成了“hello world”。
制作幫助
把幫助文件放到\vim\vim~\doc\文件夾中
文件必須是.txt文件,文件首必須是”*filename*”,例如:*usual_command.txt*
在文件中添加關鍵字,例如”*usual*”,然后在Vim中通過:help usual打開幫助文件
這里注意:要想使你的幫助文件立刻生效,請先執行這條命令:
helptags E:\Program Files\Vim\vim73\doc     即刷新你的vim的幫助文件所在的目錄,將你制作的幫助文件加入到helptags,要不你再vim里
執行:help usual_command ,就會提示找不到文件說明。
 還有注意幫助文件的字符編碼,編碼不匹配就會使亂碼。
//在vim中,執行:helptags ~vim\doc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM