学习笔记(八)——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

相关文章
相关标签/搜索