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 :複製光標當前所在處的單詞
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
去行號:%s/^[0-9]* *//g