linux編輯利器vim經常使用操做

vim文本編輯器:程序員

簡介:正則表達式

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用。和Emacs並列成爲類Unix系統用戶最喜歡的編輯器。編程


基本上vi共分爲三種模式,分別是『 通常模式 』、『 編輯模式 』與『 指令列命令模式 』。 這三種模式的做用分別是:vim


通常模式 :app

以vi 打開一個檔案就直接進入通常模式了(這是預設的模式)。 在這個模式中, 你能夠使用『上下左右』按鍵來移動遊標,你能夠使用『刪除字元』或『刪除整行』來處理檔案內容, 也能夠使用『複製、貼上』來處理你的文件資料。 編輯器


編輯模式 :ide

在通常模式中能夠進行刪除、複製、貼上等等的動做,可是卻沒法編輯文件內容的! 要等到你按下『 i, I, o, O, a, A, r, R 』等任何一個字母以後纔會進入編輯模式。 注意了! 一般在Linux中,按下這些按鍵時,在畫面的左下方會出現『 INSERT或REPLACE 』的字樣,此時才能夠進行編輯。 而若是要回到通常模式時,則必需要按下『 Esc 』這個按鍵便可退出編輯模式。 spa


命令模式 :3d

在通常模式當中,輸入『 : / ? 』三個中的任何一個按鈕,就能夠將遊標移動到最底下那一行。 在這個模式當中, 能夠提供你『搜尋資料』的動做,而讀取、存檔、大量取代字元、離開vi 、顯示行號等等的動做則是在此模式中達成的!blog


打開VIM的方式

# vim [options] [/path/to/somefile]

# vim filename :打開或新建文件,並將光標置於第一行首

# vim +n filename :打開文件,並將光標置於第n行首

# vim + filename :打開文件,並將光標置於最後一行首

# vim +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處

# vim -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename

# vim filename....filename :打開多個文件,依次進行編輯

next 打開下一個文件;

last 打開最後一個文件;

first 打開第一個文件;

prev 打開前一個文件;

        -O : 垂直分割窗口  Ctrl+w --> 光標 左 右跳轉文件

        -o : 水平分割窗口 Ctrl+w --> 光標 上下 跳轉文件


模式轉換:

       通常模式 --> 編輯模式:

               i: insert,實如今當前光標所在處前面轉換爲輸入模式;

               a: append,實如今當前光標所在處後面轉換爲輸入模式;

               o: 實如今當前光標所在行的下方新建一個空白行並轉換爲輸入模式;

               I: 在當前光標所在行的行首轉爲輸入模式;

               A: 在當前光標所在行的行尾轉爲輸入模式;

               O: 在當前光標所在行的上方新建一行,並轉爲輸入模式;


       編輯模式 --> 通常模式:

               按下Esc鍵;


       通常模式 --> 命令模式:

               鍵入: / ?


       命令模式 --> 通常模式:

               Esc,Esc


光標跳轉:

       字符間跳轉

               h: 左

               l : 右

               j : 下

               k : 上


               #h : 向左側跳#個字符;


       單詞間跳轉:

               w : 後一個單詞的詞首

               e : 跳當前或下一個單詞詞尾;

               b : 跳至當前或前一個單詞詞首;


       句子間跳轉:

               ) : 下一句;

               ( : 前一句;


       段落單跳轉:

               }: 下一段;

               {: 前一段;


       行間跳轉:

               1G,gg :

               G:

               #G:


       行內跳轉:

               ^ :  行首的第一個非空白字符

               $,End : 行尾

               0,Home : 絕對行首


關閉文件:

       在命令模式下:

               : w 保存

               : q 退出

               : ! 強制

               : wq 保存退出

               : q! 強制退出

               : x  保存退出

               : qall 退出全部編輯的文本

       在通常模式下:

               ZZ: 保存退出;



通常模式命令:

       x : 刪除單個字符

       #x :刪除#個字符


       d: 刪除命令

       dw: 刪除後一個單詞

       db: 刪除前一個單詞

       de:

       d^

       d$


       dd: 刪除光標所在行;

       #dd : 刪除光標所在行向下#行 例如: 2dd


       在命令模式下使用的命令

               末行模式地址定界:

                       起始地址,結束地址

                               $: 最後一行;

                               . : 當前行

                               %: 全文

                               例:

                               1,7d : 刪除光標所在的第1到第7個行

                               1,$-2d : 刪除除最後兩行的全部行

                               .,+3d : 刪除當前行到下面3行


通常模式下撤銷操做:

       u: vim默認會最近50次的操做,u命令可逐一撤銷此前的編輯操做;

       撤銷此前的撤銷:Ctrl+r :



粘貼操做:

       p :paste, put

       在通常模式下刪除的整行:

               p: 在當前光標所在行的下方粘貼 ;

               P: 在當前光標所在行的上方粘貼 ;


       在通常模式下刪除的字符:

               p:在當前光標所在處字符的後方粘貼 :

               P:在當前光標所在處字符的前方粘貼 :


複製:

   y: yank

       yy

       #yy 例如:2yy

       y$

       y^


       在通常模式複製的是整行:

               p: 在當前光標所在行的下方粘貼 ;

               P: 在當前光標所在行的上方粘貼 ;


       在通常模式複製的不是整行:

               p:在當前光標所在處字符的後方粘貼 :

               P:在當前光標所在處字符的前方粘貼 :



翻屏:

       Ctrl+f :向文件尾部翻一屏;

       Ctrl+b:向文件首部翻一屏;


       Ctrl+d:向文件尾部翻半屏;

       Ctrl+u:向文件首部翻半屏;


文本搜索:

       /keyword : 從當前光標所在處向文件尾部查找

       ?keyword:從當前光標所在處向文件首部查找

               n:下一個,跟查找命令相同的方向

               N:前一個,跟查找命令相反的方向


       模式

               /\<d[[:alpha:]]\{2\}n\>

正則表達式參考:http://osrun.blog.51cto.com/608651/1345153中表達符集


       vim可視化模式

               visval模式

                       v : 選中光標劃過的字符

                       V : 選中光標劃過的行,整行選取


               Esc,Esc : 回到編輯模式


       同一文檔窗口分割:

               Ctrl+w,s : 水平分割

               Ctrl+w,v : 垂直分割


               Ctrl+w, 箭頭 : 跳轉

       q : 退出分割


vim窗口屬性定義:

       顯示行號:

               set number, set nu

               set nonumber, set nonu


       自動縮進

               set autoindent, set ai

               set noai


       不區分字符大小寫

               set ignorecase, set ic

               set noic


       獲取幫助:

               set


       顯示匹配的括號:

               set showwatch, set sm

               set nosm


       語法着色:

               syntax on

               syntax off


       搜索高亮顯示

               set hlsearch

               set nohlsearch


vim的配置文件:

       上述的經常使用vim可添加到下面配置文件中,每次打開就能夠很舒服的操做了

               全局:/etc/vimrc

               我的:~/.vimrc


查找替換:

       :地址定界s/查找模式/替換成的內容/gi

       :地址定界s@查找模式@替換成的內容@gi  

s後的「/」能夠是任意符號,要搜索的內容中沒有便可。

               g : global 全局

               i : ignorecase 忽略大小寫

               例如:

                       全文中匹配 錨寫d後面任意2個或2個以上字母后面再跟上n  如 daaan dbbn這樣的內容 替換爲what

                       : 1,$s/\<d[[:alpha:]]\{2\}n\>/what/g


                       全文中匹配/dev/null 的內容 替換爲/tmp/a.txt

                       方法一 :%s/\/dev\/null/\/tmp\/a.txt/g

                       方法二 :%s#/dev/null#/tmp/a.txt#g


                       全文中匹配 d開頭後面跟任意兩個字母現跟n的字符串 把開頭的d 和結尾n替換成大寫,例如:down替換爲DowN, doon替換爲DooN

                       %@\<d<([[:alpha:]]\{2\}\)n\>@D\1N@g


全文中匹配Dev 或DEV 或 dEV 或 dev的字符串後面添加ice ,例如:Device,DEVice,dEVice,device

方法一 :%s/\([dD][eE][Vv\)]/\1ice/g

方法二 :%s@\([dD][eE][Vv\)]@\1ice@g

方法三 :%s@\([dD][eE][Vv\)]@&ice@g


刪除行首開頭的#:

%s/^#//


刪除行首開頭的#及後面緊跟的空白字符:

%s@^#[[:space:]]*@@


爲空白字符開頭的行的行首加上#:

%s@^[[:space:]]@#&@

爲當前行至再加9行以空白字符開頭的行的行首加上#:

.,+9s@^[[:space:]]@#&@


刪除文件中行首的空白符;

%s/^[[:space:]]*//

%s/^[[:space:]]\{1,\}//


替換/etc/inittab文件中"id:3:initdefault:"一行中的數字爲5;

%s/id:3:/id:5:/g


刪除某文件中的空白行;

%s/^$//g


刪除某文件中的開頭的#號;

%s/^#//g


刪除某文件中開頭的#號及後面的空白字符,但要求#號後面必須有空白字符;

%s/^#[[:space:]]\{1,\}//g


爲指定範圍內的行的行首添加#;

1,10s@^@#@g

vim操做圖片

vim_g.jpg

相關文章
相關標籤/搜索