vimbook-OPL(1-4)
Contents
vimbook-OPL(1-4)
Chapter 2 Editing a Little Faster
ZZ
写回当前文件,并退出,与:x
功能相同w
b
向右或向左移动到单词的头部W
B
向右或向左移动到字串的头部e
ge
向右或向左移动到单词的尾部E
gE
向右或向左移动到字串的尾部f{char}
F{char}
向右或向左查找字符{char},光标停留在字符上,;
同方向继续搜索,,
反方向继续搜索;t{char}
T{char}
向右或向左查找字符{char},光标停留在字符之前,;
同方向继续搜索,,
反方向继续搜索;CTRL-G
在状态栏显示目前光标在文件中的位置CTRL-U
命令向上移动半屏CTRL-D
命令向下移动半屏[count]G
分别移动到count行[count]J
将光标下的count行合并,空行会去掉,非空行用空格分隔r{char}
把光标下的字符换成 {char}~
切换光标下字符的大小写,并把光标右移q{0-9a-zA-Z"}
在寄存器 {0-9a-zA-Z"} 里录制宏,并以q退出保存,用 @{0-9a-zA-Z"} 执行。如用 qa 开启记录,其后的所有命令直到再次遇到 q 之前的所有命令都放到录制的 a 宏中,通过 @a 在文件上执行里边的命令。CTRL-K{char}{char}
显示digraphs字母,目前只在命令模式中实验成功,插入模式还没有成功,CTRL-K_S_E
“§”
Chapter 3 Searching
:set incsearch
设置增量搜索的选项(options),搜索会随着键入进行搜索,而不会等到按下后才开始搜索/
进行正向搜索?
进行反向搜索
Chapter 4 Text Blocks and Multiple Files
Marks
用 ma
将光标所在的位置做标记,以后用 `a
或者 'a
回到标记的位置,唯一的区别在于前者回到对应的列,后者回到行首。:marks
命令显示所有的标记,包括 mark, line, col 以及对应行的文本,一些特殊的标记:
"
离开本缓冲区所在位置,默认文件首行'
上次进入本缓冲区跳转的位置[
]
分别表示首行和尾行^
上次进入插入模式关闭时光标所在位置.
最后一次改变时的位置
Filtering
用外部程序对选中的文本进行过滤,意思是将选中文本作为数据传递给外部程序,执行完之后的输出覆盖现有的文本。!motion command
就是对由当前行到以 motion 表示的位置执行命令并替换后的结果。
$(GENIE) vs2012
$(GENIE) vs2013
$(GENIE) --gcc=android-arm gmake
$(GENIE) --gcc=android-mips gmake
$(GENIE) --gcc=android-x86 gmake
$(GENIE) --gcc=mingw-gcc gmake
$(GENIE) --gcc=linux-gcc gmake
$(GENIE) --gcc=osx gmake
$(GENIE) --gcc=ios-arm gmake
$(GENIE) --gcc=ios-simulator gmake
$(GENIE) xcode4
当我的光标在第一行,并输入 !10j 时,会选中此11行文本,并且在屏幕的左下角显示 :.,.+10j!
,其后再输入 sort 将此11行文本进行排序,得到如下文本:
$(GENIE) --gcc=android-arm gmake
$(GENIE) --gcc=android-mips gmake
$(GENIE) --gcc=android-x86 gmake
$(GENIE) --gcc=ios-arm gmake
$(GENIE) --gcc=ios-simulator gmake
$(GENIE) --gcc=linux-gcc gmake
$(GENIE) --gcc=mingw-gcc gmake
$(GENIE) --gcc=osx gmake
$(GENIE) vs2012
$(GENIE) vs2013
$(GENIE) xcode4
是不是一个很棒的命令?除此之外还有一个非常有用的用法 !!
命令将当前进行过滤,我们可以在空行处执行 !!date
将系统的时间获取并覆盖当前行,这样我们就可以非常方便的记录文件更改时间。!!ls
获取当前目录的所有文件及子文件,在写文档时十分有用。
Dealing with Multiple Files
此小节讲述在命令行一次性打开多个文件的情况,如 ~> vim one.c two.c three.c
,在不同文件之间切换用 :next
:previous
:first
:last
,按照它们的字面意思分别是向后、向前、第一个和最后一个文件,如果对任何一个文件进行了改变但是还没有保存,这些命令会失败,应使用 :write
进行写入,或者 :wprevious
wnext
写入并向前向后。:[count]next
:[count]previous
重复执行next或previous操作count次。
用 :args
命令显示参数列表,方括号中的为当前编辑的文件,如我们的输出:one.c [two.c] three.c
在编辑多个文件时,特殊的文本寄存器(#)表示上次编辑的文件在vim术语中alternate file,使用 :e #
可以打开,等价命令 CTRL-6
,不停按这个命令会在这两个文件键不停切换。
Author zoro.wang
LastMod 2017-11-17