有关VI的一些技巧和教材随处可见。不过功能太多,学得多不如用的多。把自己常用的功能写下来,给那些和自己有类似操作的人一些启示。
上下左右的移动: 基本常识,不做介绍
一行中的移动:
- w 往后一词(词头)
- b 往前一词
- ^ 到行头
- $ 到行尾
- e 往后一词(词尾)
- fx 往后找本行中的x
- Fx 往前找本行中的x
- ;或者, 前者是在同行中向后继续执行查找,后者是在同行中向后继续执行查找
- % 找位置所在符号的匹配符,例如(的匹配符是)
屏幕中移动:
- H,M,L 代表本屏中的high,middle,low
- ma 在这个位置做一个mark,并且命名为a(mb,mark b这个位置)
- 'a 去刚才mark的位置a
- nG 去到文件的第n行
- '' (两个单引号)可以回到G之前所在的行
- ctrl + U 往上半个屏幕
- ctrl + D 往下半个屏幕
- ctrl + G 显示现在坐在的行,文件名和列等信息
多屏幕:
- :split 或 :sp 再开一个屏幕
- :split file 将文件打开到另一个屏幕
- :vsplit 打开一个垂直屏幕
- ctrl w w 在多个屏幕之间切换
- 5 ctrl w +/- 变化出口五个单位大小
- qall 一次性从所有窗口中退出
- :edit 重新load當前文件,並讀入該文件自打開以後的更新
编辑:
- d,dw,D,x 非常常见
- v 選取一個光標到達位置的所有字,V選取光標到達的所有行
- ctrl + v 選取行後,對覆蓋的內容作的操作可以反映到所有行。例如
- : ctrl + v -> I -> # -> esc 這樣可以將一段註釋掉
- :> 或 >> 本行缩进一个tab
- :< 或 << 本行向前缩进一个tab
- ~ 切换所在位置字符的大小写
- r 替换本字
- J 两行合并在一起。
- R 替换后面的字
- . 重复上一个命令
- u undo
- ctrl + r redo
- !command 对选定的行 执行系统命令
设置:
- set number/set nu 设置行号
- set ic 忽略大小写
- set tabstop=4 设置tab键跳4格
- set ai/autoindent 设置成自动indent
- set list 显示非普通字符,例如回车和tab
- set hlsearch 在搜索时,高亮所有找到的字符
- set ruler 在右下角动态显示行号和列号
- set showmatch 现实括号等相配符
- :sh 进入到shell,当然vi不退出,在shell中exit,可以退到vi
全局替换命令:
:g/^$/d
:g will execute a command on lines which match a regex. The regex is 'blank line' and the command is :d (delete)
高级应用快捷键
快捷键可不是windows的专利。vi下面的快捷方式让你爱不失手。
设置方法如下:
map 顯示當前所有的map情況
map [ :tabp 即将[ 和 tabp加回车这一组和操作对应起来。
高级应用(宏)
qa commands q 设置宏a,开始记录命令,q来结束宏。
8@a, 执行宏,8次执行宏a。
目前常用的就这么多。以后有新的体会继续补充。
红色部分在某些版本的vim中将有可能不一样。
7.0 新特性
7.0版本的vim还有许多新功能。 最值得称道的是他的tab功能。 让许多用户可以体验到windows中的感觉。
打开多个文件在tab中的办法是
vi -p file1 file2
或者是在打开一个文件后
:tabe file2这样去打开第二个文件。
阅读(638) | 评论(0) | 转发(0) |