學習筆記(八)——vim 編輯器

1.vim 編輯器:html

vim vi 的增強版。與 vim 類似的編輯器還有nano emacs。安裝 vimlinux

[root@localhost~]# yum install –y vim-enhanced  //直接vim也能夠vim

[root@localhost~]# vim +10 /etc/init.d/iptables  //進入後光標在第十行編輯器

下面分別介紹一下vim 的三種模式——查看模式,底行模式,編輯模式和各模式下的經常使用操做:ide

1.1 查看模式/通常模式:學習

1 移動光標,h j k l 四個鍵分別對應左、下、上、右,在前面加上數字,如5h ,能夠一次性向左移動 5 個字符;spa

2 G 光標跳轉到尾行, gg 光標跳轉到首行。n(這裏指數字) + G光標跳轉到第 n 行;htm

3 ^ 光標跳轉到所在行首個非空格字符, B ^ 做用相同, 0 光標跳轉到所在行首個字符(包括空格);blog

4 x 向後刪除一個字符, X 向前刪除一個字符(Delete鍵下效果相同), n + x / X 向後/向前刪除 n 個字符;ip

5 dd 刪除光標所在行, n + dd 刪除包括光標所在行及下方共 n 行, dw 刪除光標所在處一個單詞,一樣能夠結合數字鍵使用。D 刪除光標所在處及其後面全部

注:這裏所說的刪除,實際上是剪切到了剪切板,能夠經過 p 鍵進行粘貼。

6 v 進入光標選擇狀態(可視模式),V 以行做爲單位(可視行模式)。選擇後能夠對選中內容進行刪除複製等操做;

7 yy 複製光標所在行, n + yy 複製包括光標所在行及其下方共 n 行, p 從當前光標處向下粘貼, 能夠粘貼 x/X dd dw 剪切的內容, n + p 粘貼 n 次。P 從當前光標處向上粘貼。

8 e 光標按單詞依次向後移, E 光標移動到行尾, b 光標按單詞依次向前移, B 光標移動到行首;

更加詳細的使用說明如圖1

wKioL1UUDImAAtQnAAeLuCj4S2k695.jpg

圖-1 vi/vim鍵位圖

沒必要所有掌握,酌情使用適合本身的快捷鍵便可。

1.2 編輯模式:

1 i 在當前光標處開始編輯, I 在當前光標所在行第一個符號(該符號不包含空格)處開始編輯;

2 a 在當前光標下一個字符處開始編輯,A 在當前光標所在行的最後一個字符(該字符包含空格)處開始編輯;

3 o 在當前光標所在行下方插入一個空行並開始編輯, O  在當前光標所在行上方插入一個空行並開始編輯;

4 s 刪除當前光標所在處的字符並開始編輯, S 刪除當前光標所在行全部字符並開始編輯。

1.3 底行模式:

使用底行模式前,先用:(半角冒號)或 / 進入底行模式。

1)搜索: / 向當前光標之下搜索內容, ? 向光標之上搜索內容,n 下一個, N 上一個(對於 / ,下一個就是下一個,而對於 下一個是向上一個搜索),搜索後會出現高亮,若是使用完搜索功能後想要去除匹配結果的高亮顯示,使用 nohl(no highlight 的縮寫)   

2)替換: 1,$s/root/ROOT/g ,使用 % 能夠代替 1,$ 表示從首行到尾行進行匹配, g 表示替換每行中匹配到的所有內容,不使用 g 則只替換每行中匹配到的第一個內容,固然,使用 3,5s  則替換第三行到第五行;

3 跳轉光標::n(這裏 n 爲數字) 光標跳轉到第 n 行;

4)編輯結束後的操做::q 不保存退出,修改內容將失效。 :w 保存,保存完成後並不會退出。:wq 保存並退出。 :x :wq 同樣爲保存退出,二者的區別在於,即使沒有作修改, :wq 也會影響三個時間(atime mtiime ctime), :x 則不影響三個時間。

注:能夠在 :w :wq 後面加路徑和文件名稱,將其直接保存到相應位置的相應文件中,若是文件不存在,則自動建立文件:

:wq/tmp/learn/newfile.log

:w/tmp/learn/newfile.log

 

2.擴展學習:tee命令    查看單詞在文本中出現次數

2.1  tee 命令:

tee 命令用於從標準輸入中讀取內容,以後執行兩個操做——寫入標準輸出(即顯示到顯示器上)並寫入執行文件中,好比如今有以下需求,不使用輸入重定向,將 /etc/passwd 中含有 root 的存入 ~/root.log 文件中:

[root@localhost~]# grep root /etc/passwd | tee root.log

等同於

[root@localhost~]# cat /etc/passwd | grep root | tee root.log

注:積累一下 grep 直接做用於文件的這種用法,在對文件所有內容進行匹配時,使用 grep root/etc/passwd 代替管道用法的 cat /etc/passwd | grep root ,更加方便簡潔。

注:此時若是在 ~/ 目錄下不存在 root.log 文件,則會生成並將匹配結果寫入其中,若是在 ~/ 目錄下存在 root.log 文件,則會覆蓋其中的內容,若是想要在已有文件中追加內容,使用 tee 命令的 –a 參數:

[root@localhost~]# grep root /etc/passwd | tee –o root.log

2.2 查看文本中同一個單詞的出現個數:

這裏使用查看 /etc/passwd文件中 root 單詞出現的個數做爲例子,介紹兩種方法:

方法一: vim 底行模式

[root@localhost~]# vim /etc/passwd

:%s/root/&/gn

4 matches on 2lines

注:若是不使用 n ,則結果爲

4 substitutionson 2 lines

能夠看出來使用 n 只匹配而不替換,不使用 n 則匹配完成後就替換。

方法二: grep 命令配合–o 參數

[root@localhost~]# grep –o root /etc/passwd | wc –l  //等同於

[root@localhost~]# cat /etc/passwd | grep –o root | wc –l

-o  參數只輸出文件中匹配到的內容,其中每個獨佔一行,因此可使用 wc –l 統計行數得知其出現次數。


   參考資料:http://www.aminglinux.com/bbs/thread-7643-1-1.html

相關文章
相關標籤/搜索