vim文本編輯器

一、什麼是vim
vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。
Linux下的文本編輯器還有Emacs、Notepad++、TextMate、Sublime Text 等等,vim編輯器是使用最廣泛的一個,功能也很強大,今天我們就來介紹下vim編輯器
Vim 是 Linux 系統上的最著名的文本/代碼編輯器,也是早年的 Vi 編輯器的加強版,而 gVim 則是其 Windows 版。它的最大特色是完全使用鍵盤命令進行編輯,脫離了鼠標操作雖然使得入門變得困難,但上手之後鍵盤流的各種巧妙組合操作卻能帶來極爲大幅的效率提升。

因此 Vim 和現代的編輯器(如 Sublime Text)有着非常巨大的差異,而且入門學習曲線陡峭,需要記住很多按鍵組合和命令,如今被看作是高手、Geek們專用的編輯器。儘管 Vim 已經是古董級的軟件,但還是有無數新人迎着困難去學習使用,可見其經典與受歡迎程度。另外,由於 Vim 的可配置性非常強,各種插件、語法高亮配色方案等多不勝數,無論作爲代碼編輯器或是文稿撰寫工具都非常給力,那麼學習好 Vim 的操作絕對能讓你的工作輕鬆百倍!!因爲很多時候, Linux 作爲服務器是不會開啓圖形界面,當需要遠程操作時,你只能利用 SSH“命令字符式”的 Shell 界面對其進行操作,這時如果你需要修改服務器上的網頁代碼或配置文件,VI 或 VIM 命令就是你最佳最方便也是最強大的夥伴了!相信我,學好 數理化 VIM,走遍天下也不怕…...
二、vim的使用
vim編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vim編輯器就必須熟練掌握着兩種模式的切換。默認情況下,打開vim編輯器後自動進入命令模式。從編輯模式切換到命令模式使用“esc”鍵,從命令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。
當你安裝好一個編輯器後,你一定會想在其中輸入點什麼東西,然後看看這個編輯器是什麼樣子。但vim不是這樣的,請按照下面的命令操作:

啓 動Vim後,vim在 Normal 模式下。
讓我們進入 Insert 模式,請按下鍵 i 。(陳皓注:你會看到vim左下角有一個–insert–字樣,表示,你可以以插入的方式輸入了)
此時,你可以輸入文本了,就像你用“記事本”一樣。
如果你想返回 Normal 模式,請按 ESC 鍵。

現在,你知道如何在 Insert 和 Normal 模式下切換了。下面是一些命令,可以讓你在 Normal 模式下倖存下來:

    i → Insert 模式,按 ESC 回到 Normal 模式.
    x → 刪當前光標所在的一個字符。
    :wq → 存盤 + 退出 (:w 存盤, :q 退出)   (:w 後可以跟文件名)
    dd → 刪除當前行,並把刪除的行存到剪貼板裏
    p → 粘貼剪貼板

推薦:

    hjkl (強例推薦使用其移動光標,但不必需) →你也可以使用光標鍵 (←↓↑→). 注: j 就像下箭頭。
    :help <command> → 顯示相關命令的幫助。你也可以就輸入 :help 而不跟命令。(退出幫助需要輸入:q)

vim 的模式圖
vim文本編輯器
vim的內置命令
Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
Esc:從編輯模式切換到命令模式;
ZZ:命令模式下保存當前文件所做的修改後退出vi;
:行號:光標跳轉到指定行的行首;
:$:光標跳轉到最後一行的行首;
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的;
D:刪除從當前光標到光標所在行尾的全部字符;
dd:刪除光標行正行內容;
ndd:刪除當前行及其後n-1行;
nyy:將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字;
p:粘貼文本操作,用於將緩存區的內容粘貼到當前光標所在位置的下方;
P:粘貼文本操作,用於將緩存區的內容粘貼到當前光標所在位置的上方;
/字符串:文本查找操作,用於從當前光標所在位置開始向文件尾部查找指定字符串的內容,查找的字符串會被加亮顯示;
?name:文本查找操作,用於從當前光標所在位置開始向文件頭部查找指定字符串的內容,查找的字符串會被加亮顯示;
a,bs/F/T:替換文本操作,用於在第a行到第b行之間,將F字符串換成T字符串。其中,“s/”表示進行替換操作;
a:在當前字符後添加文本;
A:在行末添加文本;
i:在當前字符前插入文本;
I:在行首插入文本;
o:在當前行後面插入一空行;
O:在當前行前面插入一空行;
:wq:在命令模式下,執行存盤退出操作;
:w:在命令模式下,執行存盤操作;
:w!:在命令模式下,執行強制存盤操作;
:q:在命令模式下,執行退出vi操作;
:q!:在命令模式下,執行強制退出vi操作;
:e文件名:在命令模式下,打開並編輯指定名稱的文件;
:n:在命令模式下,如果同時打開多個文件,則繼續編輯下一個文件;
:f:在命令模式下,用於顯示當前的文件名、光標所在行的行號以及顯示比例;
:set number:在命令模式下,用於在最左端顯示行號;
:set nonumber:在命令模式下,用於在最左端不顯示行號;
我們也可以在配置文件中設置行號永久生效
全局:/etc/vimrc
個人:~/.vimrc

vim 的一些擴展命令
. → (小數點) 可以重複上一次的命令
N<command> → 重複某個命令N次

下面是一個示例,找開一個文件你可以試試下面的命令:

    2dd → 刪除2行
    3p → 粘貼文本3次
    100idesu [ESC] → 會寫下 “desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu “
    . → 重複上一個命令—— 100 “desu “.
    3. → 重複 3 次 “desu” (注意:不是 300,你看,VIM多聰明啊).

你要讓你的光標移動更有效率,你一定要了解下面的這些命令,千萬別跳過。

NG → 到第 N 行 (注意命令中的G是大寫的,另我一般使用 : N 到第N行,如 :137 到第137行)
gg → 到第一行。(相當於1G,或 :1)
G → 到最後一行。
按單詞移動:

        w → 到下一個單詞的開頭。
        e → 到下一個單詞的結尾。

    > 如果你認爲單詞是由默認方式,那麼就用小寫的e和w。默認上來說,一個單詞由字母,數字和下劃線組成(程序變量)

    > 如果你認爲單詞是由blank字符分隔符,那麼你需要使用大寫的E和W。(程序語句)

    % : 匹配括號移動,包括 (, {, [. (你需要把光標先移到括號上)
    * 和 #:匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)

0y$ 命令意味着:

0 → 先到行頭
y → 從這裏開始拷貝
$ → 拷貝到本行最後一個字符

你可可以輸入 ye,從當前位置拷貝到本單詞的最後一個字符。

你也可以輸入 y2/foo 來拷貝2個 “foo” 之間的字符串。

還有很多時間並不一定你就一定要按y纔會拷貝,下面的命令也會被拷貝:

d (刪除 )
v (可視化的選擇)
gU (變大寫)
gu (變小寫)
等等

(可視化選擇是一個很有意思的命令,你可以先按v,然後移動光標,你就會看到文本被選擇,然後,你可能d,也可y,也可以變大寫等)
掌握這些命令,你就可以很舒服的使用vim了。
下面我給大家講些vim的高級用法
在當前行上移動光標: 0 ^ $ f F t T , ;

    0 → 到行頭
    ^ → 到本行的第一個非blank字符
    $ → 到行尾
    g_ → 到本行最後一個不是blank字符的位置。
    fa → 到下一個爲a的字符處,你也可以fs到下一個爲s的字符。
    t, → 到逗號前的第一個字符。逗號可以變成其它字符。
    3fa → 在當前行查找第三個出現的a。
    F 和 T → 和 f 和 t 一樣,只不過是相反方向。

vim文本編輯器

一般模式下的查找與替換
/word:向光標之後尋找一個字符串爲word的字符串,當找到第一個word後,按“n”繼續搜後一個
?word:向光標之前尋找一個字符串名爲word的字符串,當找到第一個word後,按“n”繼續搜前一個
:n1,n2s/word1/word2/g:在n1和n2行間查找word1這個字符並替換爲word2,你也可以把“/”換成“#”
:1,$s/word1/word2/g:從第一行到最末行,查找word1並替換成word2
:1,$s/word1/word2/gc:加上c的作用是,在替換前需要用戶確認

vim批量添加註釋
1、ctrl+v使用方向鍵上下選擇範圍;

2、shift+i進入編輯模式,添加“#”。隨後按esc退出(也可理解爲運行批量添加);此時批註已加好

批量刪除添加的註釋行.

ctrl+v使用方向鍵上下選擇去除批註的範圍,按“x”;

1.括號成對匹配
匹配:set showmatch,簡寫爲set sm
取消:set nosm
2.自動縮進
啓用:set ai
禁用:set noai
3.高亮搜索
啓用:set hlsearch
禁用:set nohlsearch
4.語法高亮
啓用:syntax on
禁用:syntax off
5.忽略字符的大小寫
啓用:set ic
禁用:set noic
6.文件格式
啓用Windows格式:set fileformat=dos
啓用Unix格式:set fileformat=unix
7.設置文本寬度
:set textwidth=65(vim only)
:set wrapmargin=15
這些都是臨時生效 ,要想永久生效都可以寫到配置文件中
全局:/etc/vimrc
個人:~/.vimrc


上面就是一些Vim的常用命令,我建議大家對這些命令多多練習,有時候學習vim就像是在死背一些東西,多練多用就能熟練掌握。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章