VIM編輯器介紹
什么是VIM?
Vim是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是純粹的自由軟件。
Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。
VIM的使用
1、在插入模式之外
2、使用 h、j、k、l
3、在當前行里面有效的移動光標
常用到的一些命令
fx:移動光標到當前行的下一個 x 處。很明顯,x 可以是任意一個字母,而且你可以使用 ; 來重復上一個 f 命令;
tx:和上面的命令類似,但是是移動到 x 的左邊一個位置;
Fx:和 fx 類似,不過是往回找。使用 , 來重復上一個F命令;
Tx:和 tx 類似,不過是往回移動到 x 的右邊一個位置;
b:光標往前移動一個詞;
w:光標往后移動一個詞;
0:移動光標到當前行首(是數字0);
^:移動光標到當前行的第一個字母位置;
$:移動光標到行尾;
):移動光標到下一個句子;
( :移動光標到上一個句子;
在整個文件里面有效移動光標
<Ctrl-f>:向下移動一屏;
<Ctrl-d>:向下移動半屏;
<Ctrl-b>:向上移動一屏;
<Ctrl-u>:向上移動半屏;
G:到文件尾;
numG:移動光標到指定的行(num);
gg:到文件首;
H:移動光標到屏幕上面;
M:移動光標到屏幕中間;
L:移動光標到屏幕下面;
*:讀取光標處的字符串,并且移動光標到它再次出現的地方;
#:和上面的類似,但是是往反方向尋找;
/text:從當前光標處開始搜索字符串 text,并且到達 text 出現的地方。使用回車開始搜索命令。如果想重復搜索的話,按 n移動到下個 text 處,N 移動到上一個 text 處 ;
?text:和上面類似,但是是反方向;
m{a-z}:在當前光標的位置標記一個書簽,名字為 a-z 的單個字母。書簽名只能是小寫字母;
`a:到書簽 a 處;
`.:到你上次編輯文件的地方;
進入插入模式
i:在當前字符的左邊插入;
I:在當前行首插入;
a:在當前字符的右邊插入;
A:在當前行尾插入;
o:在當前行下面插入一個新行;
O:在當前行上面插入一個新行;
c{motion}:刪除 motion 命令跨過的字符,并且進入插入模式;
c$,這將會刪除從光標位置到行尾的字符并且進入插入模式;
ct!,這會刪除從光標位置到下一個嘆號(但不包括),然后進入插入模式;
注意:被刪除的字符被存在了剪貼板里面,并且可以再粘貼出來。
d{motion}:和上面差不多,但是不進入插入模式;
有效的移動大段的文本
v:按字符選擇;
V:按行選擇;
<C-V>:按塊選擇;
在可視選擇模式下剪切和拷貝
d:剪貼選擇的內容到剪貼板;
y:拷貝選擇的內容到剪貼板;
c:剪貼選擇的內容到剪貼板并且進入插入模式;
d{motion}:剪切 motion 命令跨過的字符到剪貼板;
y{motion}:和上面類似,不過是拷貝;
c{motion}:和 d{motion} 類似,不過最后進入插入模式;
dd:剪切當前行;
yy:拷貝當前行;
cc:剪切當前行并且進入插入模式;
D:剪切從光標位置到行尾到剪貼板;
Y:拷貝當前行;
C:和 D 類似,最后進入插入模式;
x:剪切當前字符到剪貼板;
s:和x類似,不過最后進入插入模式;
p:粘貼;
vim的配置
設置縮進::set smartindent // 設置縮進; :set smartindent shiftwidth=4 // C語言自動縮進,縮進值為4個字符寬度;
顯示光標行列信息::set ruler // 顯示光標信息(右下角);
查看制表符::set list // 顯示制表符,以^符號顯示制表符的位置;
查看行數信息::set number //顯示行號(左邊);
關鍵字高亮::syntax on //關鍵字高亮;
多文件編輯:: split two.c // 多文件編輯;
練習題
1.復制/etc/rc.d/init.d/functions文件至/tmp目錄,將/tmp/functions文件中的以至少一個空白字符開頭的行的行首加#;
# cp /etc/rc.d/init.d/functions /tmp/ # vim /tmp/functions :s@^[[:space:]]\+@#@g
2.復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
# cp /boot/grub/grub.conf /tmp/ # vim /tmp/grub.conf :%s@^[[:space:]]\+@@g
3.刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符;
# vim /tmp/rc.sysinit :%s@^#[[:space:]]\+@@g
4.為/tmp/grub.conf文件中前三行的行首加#號;
# vim /tmp/grub.conf :1,3s@^@#@g
5.將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
# vim /etc/yum.repos.d/CentOS-Media.repo :%s@=0@=1@g
6.每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202;
0 */4 * * * /usr/bin/cp -rf /etc /backup/etc-$(date +%Y%m%d) &> /dev/null
7.每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402;
0 0 * * 2,4,6 /usr/bin/cp /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
8.每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中;
0 */2 * * * /usr/bin/grep '^S' >> /stats/memory.txt
9.工作日的工作時間內,每兩小時執行一次echo "howdy";
0 */2 * * 1-5 /usr/bin/echo "howdy"
10.創建目錄/tmp/testdir-當前日期時間;
# mkdir /tmp/testdir-`date +%F`
11.在此目錄創建100個空文件:file1-file100;
#!/bin/bash # for i in {1..100};do touch file$i done
12.顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;
# sed -n 'n;p' /etc/passwd | cut -d: -f1
13.創建10用戶user10-user19;密碼同用戶名;
#!/bin/bash # for i in {10..19};do useradd user$i echo "user$i" | passwd --stide user$i &> /dev/null done
14.在/tmp/創建10個空文件file10-file19;
#!/bin/bash # for i in {10..19};do touch /tmp/file$i done
15.把file10的屬主和屬組改為user10,依次類推。
#!/bin/bash # for i in {10..19};do chown user$i.user$i /tmp/file$i done
原創文章,作者:N22-無錫-沉默,如若轉載,請注明出處:http://www.www58058.com/52391
博客寫得非常的好,32個贊,給出了詳細操作步驟,9題還差一個工作時間哦,加油!