A. Vi/Vim 使用小竅門,如何消除搜索後的關鍵字高亮
輸入:」:noh「。
使用技巧
1、使用 h、j、k、l
當命令模式時,可以用 h、j、k、l 來分別實現左、下、上、右箭頭的功能。
2、快捷指令
(1)[Ctrl] + [b] 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵。
(2)[Ctrl] + [d] 屏幕『向下』移動半頁。
(3)[Ctrl] + [u] 屏幕『向上』移動半頁。
(4)/word 向游標之下尋找一個名稱為 word 的字元串。例如要在檔案內搜尋 vbird 這個字元串,就輸入 /vbird 即可。
(1)vim實用技巧pdf擴展閱讀
簡介
vim的設計理念是命令的組合。用戶學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,並且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。
同時VIM與很多快捷鍵設置和正則表達式類似,可以輔助記憶。並且vim針對程序員做了優化。
發展歷程
Bram Moolenaar 在 80 年代末購入他的Amiga計算機時,Amiga 上沒有他最常用的編輯器vi。Bram 從一個開源的 vi 復制 Stevie 開始,開發了 Vim 的 1.0 版本。最初的目標只是完全復制 vi 的功能,那個時候的 Vim 是Vi IMitation(模擬)的簡稱。
1991 年 Vim 1.14 版被 "Fred Fish Disk #591" ——Amiga 用的免費軟體集收錄了。1992 年 1.22 版本的 Vim 被移植到了 UNIX 和MS-DOS上。從那個時候開始,Vim 的全名就變成 Vi IMproved了。
B. vim編輯器的使用以及常用快捷鍵
一般模式英文鍵盤模式下輸入i進入編輯模式;
編輯模式下按下esc回到一般模式;
一般模式下輸入:或者/進入命令模式
命令模式下按下esc或者按下enter鍵命令執行完成後也會回到一般模式
進入vim編輯器: vim 文件名.後綴
退出vim編輯器:
1. :q 退出,如有修改會被提示已修改文件內容
2. :q! 強制退出,不保留修改內容
3. :wq 保存修改內容並推出
C. vim模式與模式切換vim命令模式
vim有三種模式,本文介紹VIM模式與vim模式切換的方法。
vim命令 模式, 編輯模式 , 尾行模式 和文本編輯命令。
Vim編輯模式插入字元,行尾、行首插入,刪除一個字元和刪除整行命令,Vim復制和粘貼命令,vim替換輸入以及撤銷和反撤銷命令,Vim保存和另存為文件,顯示vim當前編輯文件名。
我們使用vim編輯器的常用文件操作主要是:插入、刪除、復制、粘貼、替換、撤銷、保存、另存為。
在介紹Vim中的上述基本文件操作命令前,需要先介紹下vim的操作模式。因為vim的各種對文件操作命令需要在不同操作模式下使用。
一、Vim三種操作模式
Vim編輯器一共有3種模式,分別為 命令模式 (默認)、編輯模式、尾行模式。這3種模式的轉換關系如下圖所示。
vim三種模式
1 命令模式(command mode)
命令模式是Vim的默認操作模式,當使用vim命令打開一個文件時,默認進入的就是命令模式。不管用戶處於何種模式,只要按下Esc鍵就可使進入命令行模式
2 編輯模式(input mode)
只有在vim編輯模式下,才能將鍵盤鍵入的內容輸入到當前打開的文件中
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進入文本編輯模式
3 尾行模式(last line mode)
尾行模式主要用於保存文件或退出Vim,同時也可以設置編輯環境和一些編譯工作,如列出行號(set nu)、尋找字元串(/target)等
在命令模式下,用戶按冒號鍵(:)即可進入末行模式下,此時Vi會在顯示窗口的最後一行顯示一個」:「作為末行模式的提示符,等待用戶輸入命令
二、Vim文本編輯命令
約定:在沒有特殊說明的情況下,以下Vim編輯命令部分提到的命令均是在命令模式下使用。
1 vim插入命令
在命令模式下按以下按鍵可進入編輯模式,執行插入操作,具體包括:
從游標當前所在行的【行首】處開始插入:I
從游標當前所在行的【行尾】處開始插入:A
從游標當前所在行的【下一行】處開始插入:o
從游標當前所在行的【上一行】處開始插入:O
從游標當前所在位置的【前】一個字元處開始插入:i
從游標當前所在位置的【後】一個字元處開始插入:a
tips:i (insert)是在當前位置插入,a (append)表示是在後面追加
2 vim刪除命令
在命令模式下按以下按鍵可執行刪除操作,具體包括:
刪除從游標所在位置到當前【單詞結束】部分的內容並進入插入模式:cw、cW
刪除從游標所在位置到當前【單詞開始】部分的內容並進入插入模式:cb、cB
刪除從游標所在位置到當前【單詞結束】部分的內容但不進入插入模式:dw、dW
刪除從游標所在位置到當前【單詞開始】部分的內容但不進入插入模式:db、dB
刪除游標位置的【一個】字元:x
刪除當前游標所在【行】:dd
刪除從游標所在位置到當前【行首】的內容:d0
刪除從游標所在位置到當前【行尾】的內容:d$
tips:
(1) Vim的命令中,0 表示行首,$ 表示行尾,更多內容可參考卡拉圖Vim操作范圍、文件范圍介紹
(2) w(word)、b(back)命令用於游標移動,具體可參考卡拉圖:vim游標移動命令匯總
(3) cW、cB、dW、dB 命令操作的單詞是以空白字元(空格、Tab)分隔的字元串
刪除當前【段落】從游標位置開始到【段末】的內容:d}
刪除當前【段落】從游標位置開始到【段首】的內容:d{
刪除當前【句子】從游標位置開始到【句末】的內容:d)
刪除當前【句子】從游標位置開始到【句首】的內容:d(
tips:Vim命令中用 ( 和 ) 表示句子,{ 和 } 表示段落
3 vim復制命令、vim粘貼命令
在命令模式下按以下按鍵可執行復制、粘貼操作,具體包括:
將最後一次刪除或復制操作的文本內容粘貼到游標所在字元之【後】:p
將最後一個刪除或復制操作的文本內容粘貼到游標當前字元之【前】:P
復制從游標所在位置到當前【單詞結束】部分的內容:yw
復制游標所在【行】的所有字元 (包含換行符):yy
tips:yyp 操作可以實現復制一整行內容到當前所在行的下一行
4 vim替換命令
在命令模式下按以下按鍵後,再輸入字元可替換原始文件中的內容
一直替換游標所在字元,直到按下[ESC]鍵為止:R
刪除、復制操作的操作單位可以加操作次數,操作對象的范圍為:操作次數 * 操作單位
替換游標當前所在字元一次:r
例如:d3w命令表示刪除三個單詞,10dd命令表示從游標所在行開始刪除後面的十行,更多內容可以參考Vim中的操作符和動作命令。
5 vim撤銷命令、vim回退反撤銷命令
在命令模式下可執行撤銷操作
撤銷最近的一次操作:u
恢復最近的一次操作(取消撤銷):<Ctrl> + r
tips:多次執行u 命令可以連續撤銷最近的操作
6 vim保存命令
在尾行模式下執行以下命令可保存當前編輯的文件內容
保存當前編輯的文件::w
保存當前編輯的文件並退出vim::wq
強制將當前編輯的文件保存::w!
tips:上述操作是在尾行模式下執行的,所以命令都是以:開頭
7 vim另存為命令
在尾行模式下執行命令 :w a.txt 可將vim當前打開的文件另存為新文件a.txt.
tips:w(write) 表示將文件存檔,: 表示尾行模式命令。
8 vim顯示當前文件名的方法
命令 <Ctrl> + g 可顯示當前編輯文件名及行數,可以在不退出 Vim 的情況下了解當前編輯文件的信息,更多內容,可參考30個vim常用命令和使用 vim技巧 。
Vim入門級文件編輯命令匯總就先介紹到這里了,更多Vim文件編輯命令和Vim相關操作可閱讀本站其它文章內容。
D. vim操作技巧
不知不覺使用vim已經有一些時間了,也算得上真正掌握使用技巧了吧。想不起來當初為什麼去學習這個編輯器,也不記得怎麼學會使用編輯文件,只記得當初按完所有的鍵盤按鍵都沒有退出vim。一顆種子要經過多少風雨才能長成參天大樹,一條小溪要經過多少高山河流才能匯入大海。我們平常學習一樣東西,要經過多少困難,多少挫折,只有自己最清楚。
普通編輯器都可以直接打開文件進行編輯、保存、使用快捷鍵等等,vim也具備這些功能,但是有些功能要在特定模式下才能使用。也是因為這些模式,讓vim學習路線變得特別比較陡峭。vim具有多種模式,每種模式都有特定功能,有時你需要某些功能時,特意切換到指定模式下操作。使用鍵盤就可以隨意切換模式,讓vim不依賴滑鼠操作,使用最小化組合鍵的操作,編輯效率大大提高。
這個模式主要功能,可以使用移動命令,擴大高亮的文本區域。輸入命令將直接作用於選中文本區域。這就相當於你用滑鼠選中一段文本區域,可以使用可以使用命令進行,復制、剪切、修改操作,但是vim並不需要滑鼠。
這個模式要在可視模式下才能進入,可以直接使用退格鍵或者空格鍵刪除選中文本區域,或者直接輸入新的文本,替換選中高亮區域進入插入模式。
平常在使用vim主要是在普通模式、插入模式、可視模式、命令模式進行操作,掌握這里基本就可以熟悉使用vim了。
掌握這些快捷鍵,移動游標得時候,手機基本不會離開核心鍵盤區,有沒有像 w , a , s , d 移動角色的感覺🙂。
要想編寫文本內容,還必須在插入模式下進行操作,以下命令由普通模式進入到插入模式
d 刪除字元(delete), d 本身沒有任何涵義,但是它可以跟其他命令組合,完成一些快速操作。
<font size=5>操作符 + 動作命令 = 操作</font>
d<span style="color:red;">{motion}</span> 命令可以對一個字元 dl 、一個完整單詞 daw 或
一整個段落 dap 進行操作,它作用的范圍由動作命令決
定。c<span style="color:red;">{motion}</span>、y<span style="color:red;">{motion}</span> 以及其他一些命令也類似,它們被統稱為操作符(operator)。
<center>Vim的操作符命令</center>
看著上面刪除操作,是不是很容易理解操作符 + 動作命令 的模式,比如我們已經知道 daw 刪除整個單詞, gU 反轉大寫,我們就可以使用 gUaw 反轉整個單詞, gUap 反轉整個段落大寫
由於vim中快捷鍵已經被change修改佔用了,只能使用 y 代表復制(yank),粘貼(put)使用 p , d 其實是將內容剪切到寄存器中,剪切實現刪除操作。 ddp 看起來是將兩行位置互換,其實先剪切當前行到寄存器中, p 粘貼到游標下的位置。主要記住使用命令 y + 動作指令 或者 d + 動作指令,都是將文本暫存到寄存器中,使用 p 或者 P 進行粘貼。進行一個小demo練習,將變數field替換下面的函數參數foo。
思路: 先使用 yw 復制field欄位,下移動foo中, dw 刪除foo, P 粘貼。但是你會發現粘貼結構居然還是foo。這是因為 dw 將刪除文本放入寄存器中,覆蓋了上面的變數。我們平常復制,剪切的文本都會暫存再無名寄存器中。
在vim中的刪除、復制、粘貼都是使用寄存器,可以使用 "{registerName} 方式命名寄存器。平時我們使用 dd , yy 命令,不指名寄存器名稱默認使用無名寄存器。倘若沒有指定要使用的寄存器,Vim將預設使用無名寄存器,它可以用雙引號表示(參見 :h quote_quote )。無名寄存器可以使用 "" 表示,比如 ""yy 相當於 yy , ""p 相當於 p
"[0-9]表示數字寄存器,數字越小表示最早在寄存器內容。例如 "0 表示第一個進入寄存器文本, "1 表示第二個進入寄存器內容,類似值棧結構,先進後出排列。可以使用 :reg 查看寄存器中內容。
在win系統中,可以在任意地方Ctrl c復制文本,vim是否可以粘貼非vim中復制內容?當然是可以的。 "+ 表示系統寄存器,可以讀取系統vim之外的系統粘貼板中的內容,可以粘貼內容,復制到系統粘貼板中去。ubuntu上需要安裝vim-gnome,才可以正常使用系統寄存器。
使用粘貼命令前面+寄存器名稱,就可以直接使用專用寄存器中的內容了,例如 "+p 直接粘貼系統剪貼板中的內容。
在插入模式使用 <Ctrl r> + 寄存器名稱粘貼字元文本。例如可以使用 <Ctrl r>" 粘貼無名寄存器中內容。
本文章有部分內容參考 《vim實用技巧第2版》 ,有興趣的同學可以買一個本來看看,真的很不錯哦!
E. Vim實踐技巧二:為指定的行末尾批量修改
有一個PHP文件,由於某些原因,每行的最後分號結束符丟失,我們期望將其批量補全。
原數據:
期望數據:
這里涉及兩個問題:
1、只要2-4行需要在末尾添加分號
2、每個行的字元串長度均不一致
解決思路:
1、方式一:通過視圖模式將需要修改的塊進行選中然後批量修改
2、方式二:通過命令行模式追回
步驟:
1、游標在第二起始,按下 ctrl+v 進入視圖模式的塊選擇
2、按下 jj$ ,把需要的塊進行選擇
3、按下 A ,進入修改狀態,輸入 ;
4、按下Esc退出,完成
釋義:
1、 ctrl+v 是進入塊選擇模式
2、 jj 向下選擇兩行, $ 執行到末尾
3、A進行修改模式,輸入自己的需要的內容
4、一定需要按 Esc 退出,完成整個塊的修改
在命令模式下,輸入:
釋義:
1、:normal 可在命令行命令下切換到普通模式
2、在普通模式下,執行 A; 指令,可以在行尾添加一個 ;
F. Vim實踐技巧一:為每行數據前面添加行號
最近在寫Thrift文件時,從其他地方拷貝過來的數據,沒能帶上行號,這樣子得手工一行行添加行號,比較費時費力。
原數據:
期望數據:
這里涉及兩個問題:
1、只要2-4行需要自動添加行號
2、需要在Vim編輯器上執行
解決思路:
1、在Vim命令模式下指定行數
2、通過外部命令Awk可以自動生成行數
在vim的命令行模式輸入:
就可以實現上述目的
釋義:
1、指定行數:2,4
只要2-4行
2、執行外部命令:!awk '{print " "NR":" 2}'
!awk:執行外部命令awk
NR:行數。這里是NR行數與Vim行數不一樣,而是我們輸入的指定內容行行數,即2-4行內容
G. 怎麼用VIM閱讀PDF文件
VIM是文本編輯器,不支持閱讀PDF文件。
要閱讀PDF文件請用Adobe Acrobat XI Pro或Adobe Reader XI 軟體。