vim高级编辑(一)
本文内容学习自《使用vi编辑器, Lamb & Robbins编著》
本文内容概要:
set设置
.vimrc配置
vim下执行linux命令
利用linux命令来编辑当前文件
短语缩写
本文约定:
$ + 命令 表示在普通的bash的命令行下
: + 命令 表示在vim的ex(命令)模式, 按"Ctrl" + ":" 进入
------------------------------------------------------------------------------------------------
set命令
有两种类型的选项可以使用:set命令进行修改:不是开就是关的触发选项和带数字或字符串值的选项(如页边距的位置和文件名)
一般触发选项的命令为:set cmd
关闭选项的命令为:set nocmd
上面cmd代表某种命令选项
例如,
:set ic 在搜索时忽略大小写 (ic=ignore case)
:set noic 在搜索时不忽略大小写
可以用:set all 命令查看所有的选项,可以看到你设置的值或者默认值
:set option? 查看option这个选项的当前设置值
:set 显示在.vimrc文件或当前会话期间修改或设置过的选项
.vimrc文件
在Linux中,.vimrc在用户home目录下(初始时没有,要自己创建一个),可以修改这个文件。
可以把set, ab和map命令写入该文件中,那么打开vim编辑,会使用这个文件里的配置
替换环境
除了读取home目录下的.vimrc配置文件外,还可以让vim读取当前目录下的.vimrc文件,这样可以对那些适用于特殊项目的选项进行设置。
注意,可以在home目录下的.vimrc设置某些选项,然后在本地目录中取消这些设置。
执行linux命令
在vim进行编辑时,可以显示或读取任何Linux命令执行的结果。
用感叹号(!)可以制定vim创建一个shell并把它后面的内容看成Linux命令:
:!command
例如,
:!date 显示当前时间
上面的命令,只能执行一次命令,然后就返回vim编辑环境了,如果想要执行多次命令而不会返回vim编辑环境,可以用命令,
:sh
这个命令其实是新建了一个shell,可以像正常的命令行一样操作。
如果要退出shell并返回vim编辑,按 Ctrl + D
利用read(r)命令可以把Linux命令执行的结果读入到当前编辑的文件中:
:r !date
将会把当前时间读入到编辑文件中
使用命令过滤文本
利用感叹号执行linux命令,可以让vim利用linux命令所提供的功能来编辑。
例如文件内容:
4
5
2
3
要把这几行从小到大排序,可以利用系统的sort命令:
:1, 4 !sort
将会对这四行排序
短语缩写
缩写很有用,我们经常在文件中反复输入同样长的短语,无论是在插入模式还是在命令模式下,vim和ex都有许多不同的用来保存长命令序列的方法
:ab hw hello world!
这个命令表示hw是hello world!的缩写,那么在插入模式或者命令模式下,只要输入hw作为一个完整的单词(不能是其他单词的一部分),就会自动拓展成hello world!
如果要取消这个缩写,可以输入
:unab hw
列出当前的所有缩写
:ab