『壹』 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版》 ,有興趣的同學可以買一個本來看看,真的很不錯哦!
『貳』 vim編輯命令怎麼使用
vim是一個全屏編輯器,模式化編輯器。模式主要有編輯模式,輸入模式,末行模式。默認打開vim命令進入的是編輯模式。
打開文件打開文件:vim
/path/to/somefile
其他用法:
vim
+#:打開文件,並定位到#行
vim
+:打開文件,並定位到最後一行
vim
+/pattern:打開文件,並定位到第一次被pattern匹配到的行的行首
關閉文件1、末行模式關閉文件
:q
不保存退出
:wq
保存並退出
:q!
不保存強制退出
:w
保存
:w!強制保存
:wq
-->
:x
2、編輯模式退出
ZZ
保存並退出
模式轉化1、編輯-->輸入
i:在當前游標所在字元的前面轉為輸入模式;
I:在當前游標所在字元的行首轉為輸入模式;
a:在當前游標所在字元的後面轉為輸入模式;
A:在當前游標所在字元的行尾轉為輸入模式;
o:在當前游標所在行的下面新建一行,轉為輸入模式;
O:在當前游標所在行的上面新建一行,轉為輸入模式;
『叄』 【筆記】Vim的操作
剛打開文件時Vim處於命令模式,此時文件的下方會顯示文件的一些信息,包括文件的總行數和字元數,以及當前游標所在的位置等。
例如,要將某文件中所有的"root"替換為"liudehua",則有兩種輸入命令,分別為:
注意,被刪除的內容並沒有真正刪除,都放在了剪貼板中。將游標移動到指定位置處,按下 "p"鍵,就可以將剛才刪除的內容又粘貼到此處。
某些情況下,可能需要把兩行進行連接。比如說,下面的文件中有兩行文本,現在需要將其合並成一行(實際上就是將兩行間的換行符去掉)。可以直接在命令模式中按"J"鍵。
Vim的保存和退出是在編輯模式中進行的。
需要注意的是,"w!"和"wq!"等類似的指令,通常用於對文件沒有寫許可權的時候(顯示 readonly,如圖12所示),但如果你是文件的所有者或者root用戶,就可以強制執行。
程序員在編輯程序時,經常會為將游標移動到與一個 "(" 匹配的 ")" (對於 [] 和 {} 也是一樣的)處而感到頭疼。Vim裡面提供了一個非常方便地査找匹配括弧的命令,這就是 "%"。
在編輯文件時,可以使用Vim同時打開兩個文件,每個文件分別佔用一個窗口。
例如,在査看 /etc/passwd 時需要參考 /etc/shadow,有兩種辦法可以實現:
連續行的注釋其實可以用替換命令來完成。換句話說,在指定范圍行加"#"注釋,可以使用 ":起始行,終止行 s/^/#/g",例如:
取消連續行注釋,則可以使用":起始行,終止行s/^#//g",例如:
添加"//"注釋要稍微麻煩一些,命令格式為":起始行,終止行 s/^////g"。例如:
以上方法可以解決連續行的注釋問題,如果是非連續的多行就不靈了,這時我們可以定義快捷鍵簡化操作。格式如下:
在命令模式下輸入":set nu"即可顯示每一行的行號,如果想要取消行號,則再次輸入":set nonu"即可。
如果希望每次打開文件都默認顯示行號,則可以編輯Vim的配置文件。每次使用Vim 打開文件時,Vim 都會到當前登錄用戶的宿主目錄(用戶配置文件所在地)中讀取 .vimrc 文件,此文件可以對 Vim 進行一些默認配置設定。
Vim 配置文件分為系統配置文件和用戶配置文件:
『肆』 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相關操作可閱讀本站其它文章內容。
『伍』 5. Linux的vi/vim使用及常用快捷鍵
命令行下,輸入vim xxx.c就會進入vim一般模式,並開始編輯這個xxx.c的文件。
使用vim xxx.c就會默認進入vim一般模式。
在一般模式下,按下i鍵就會進入編輯模式,也稱INSERT MODE(插入模式)。
編輯模式中,按ESC鍵會退出編輯模式回到一般模式。
按下:鍵就會進入命令模式。
按下ESC鍵回到一般模式。
命令模式下,輸入
:wq 這個命令再按回車鍵就會保存並退出vim(write and quit)
:q 退出vim(不會保存)
:q! 強制退出vim(不會保存)
yy 拷貝當前行
5yy 拷貝當前行及下面一共5行
p 粘貼
dd 刪除當前行
4dd 刪除當前行及下面一共4行
G 定位到最後一行
gg 定位到第一行
快速定位到指定行號:輸入一個數字然後按下G(shift+g)
u 撤銷前一個操作
/xx 按下回車就會在文件中查找xx,查到會高亮第一個字元,按n會查找下一個xx
:set nu 顯示行號
:set nonu 取消顯示行號
『陸』 Linux下vim編輯器命令大全
vim可以分為三種狀態,分別是 命令行模式(command mode) 、 輸入模式(Insert mode) 和 底行模式(last line mode) ,這 3 種工作模式可隨意切換,如下圖所示。
使用vim編輯文件時,默認處於命令行模式。此模式下,可使用方向鍵(上、下、左、右鍵)或 k、j、h、i 移動游標的位置,還可以對文件內容進行復制、粘貼、替換、刪除等操作。
下圖所示是vim處於命令行模式的狀態示意圖。
在輸入模式下,vim可以對文件執行寫操作,類似於在Windows系統的文檔中輸入內容。
使vim進行輸入模式的方式是在命令模式狀態下輸入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具體功能下表所示),當編輯文件完成後按 esc 鍵即可返回命令模式。
下圖所示為vim處於輸入模式模式下的示意圖。
底行模式用於對文件中的指定內容執行保存、查找或替換等操作。
使vim切換到底行模式的方法是在 命令行模式 狀態下按 : 鍵(注意是英文符號),此時vim窗口的左下方出現一個 : 符號,這是就可以輸入相關指令進行操作了。
指令執行後vim會自動返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下圖所示為vim進入底行模式後的狀態。
對於新手來說,經常不知道自己處於什麼模式。不論是自己忘了,還是不小心切換了模式,都可以按一次 esc 鍵返回命令行模式。如果你多按幾次 esc 鍵後聽到"嘀————"的聲音,則代表你已經處於命令行模式了。
打開文件
打開文件時游標處於文件尾部
打開文件時,游標定位到第幾行
字元移動
這些移動鍵都可以加上數字(5h:向左移動5個字元格)
單詞移動
行內跳轉
行間移動
在底行模式下,直接給出行號,實現跳轉
用法:起始地址,結束地址 s @要替換內容@替換後內容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a換替換成A,全局替換
顯示取消行號
設定自動縮進(寫腳本時)
查找到的文本高亮顯示
語法高亮
/etc/vimrc :全局配置文件,永久有效
~/.vimrc :個人配置文件,每個用戶的家目錄中,若不存在,手動創建
對於第一次用vim的童鞋,有幾點需要提醒一下:
『柒』 vim的使用方法
命令模式:控制游標移動,可對文本進行復制、粘貼、刪除和查找等工作。
輸入模式:正常的文本錄入。
末行模式:保存或退出文檔,以及設置編輯環境。
在每次運行Vim編輯器時,默認進入命令模式,此時需要先切換到輸入模式後再進行文檔編寫工作,而每次在編寫完文檔後需要先返回命令模式,然後再進入末行模式,執行文檔的保存或退出操作。在Vim中,無法直接從輸入模式切換到末行模式。Vim編輯器中內置的命令有成百上千種用法,為了能夠幫助讀者更快地掌握Vim編輯器,表4-1總結了在命令模式中最常用的一些命令。
表4-1 Vim中常用的命令
編輯
命令 作用
dd 刪除(剪切)游標所在整行
5dd 刪除(剪切)從游標處開始的5行
yy 復制游標所在整行
5yy 復制從游標處開始的5行
n 顯示搜索命令定位到的下一個字元串
N 顯示搜索命令定位到的上一個字元串
u 撤銷上一步的操作
p 將之前刪除(dd)或復制(yy)過的數據粘貼到游標後面
末行模式主要用於保存或退出文件,以及設置Vim編輯器的工作環境,還可以讓用戶執行外部的Linux命令或跳轉到所編寫文檔的特定行數。要想切換到末行模式,在命令模式中輸入一個冒號就可以了。Vim文本編輯器
命令 作用
:w 保存
:q 退出
:q! 強制退出(放棄對文檔的修改內容)
:wq! 強制保存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two 將當前游標所在行的第一個one替換成two
:s/one/two/g 將當前游標所在行的所有one替換成two
:%s/one/two/g 將全文中的所有one替換成two
?字元串 在文本中從下至上搜索該字元串
/字元串
『捌』 VI和VIM命令的操作
vi編輯器是分為三種狀態的
h 或 向左箭頭鍵(←) 游標向左移動一個字元
j 或 向下箭頭鍵(↓) 游標向下移動一個字元
k 或 向上箭頭鍵(↑) 游標向上移動一個字元
l 或 向右箭頭鍵(→) 游標向右移動一個字元
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字元處(常用)
gg 移動到這個檔案的第一行 (常用)
n<Enter> n 為數字。游標向下移動 n 行(常用)
n<space> 那個 n 表示『數字』,游標會向右移動這一行的 n 個字元。
n<Enter> n 為數字。游標向下移動 n 行(常用)
/word 向下尋找某個單詞
?word 向下尋找某個單詞
n 向下重復執行搜索命令
N 向上重復執行搜索命令
dd 刪除游標所在的整列
yy 復制游標所在那行
. 重復上一個動作
主要為一般模式到編輯模式的切換
i,I a,A o,O r,R 都可以實現到編輯模式的切換
其中r,R實現的是取代模式
Esc 為推出編輯模式回到常用模式
:w 編輯的數據寫入硬碟
:w! 如果未見為只讀的時候強制寫入
;q 離開
:q! 不儲存強制離開
:wq 儲存後離開
:wq! 儲存後強制離開
ZZ 若檔案沒有動過則直接離開,若檔案已動過則保存離開
:set nu 設置行號
:set nonu 取消行號