【ChinaBeta.Cn 网盟学院】
十、VIM的不足
前面已经提到,VIM在自动完成和集成调试方面还比不上现代的许多IDE,另外VIM对二进制编辑还没有UltraEdit强大,对于现在流行的重构, VIM也支持不力,但是作为一个文本编辑器而言,堪比的只有Emacs,另外Visual SlickEdit也很强大,不过它是商业软件。VIM也可以嵌入到Visual Studio中作为编辑器,另外Code Forge,Eclipse,NetBeans,Sun Visual Workshop等也提供了一定的VIM支持或者键绑定。
Reference: :help workshop :help netbeans :help debugger 十一、工作中使用VI的问题
:w保存后,:q退出时,提示“E138: 不能写入 .viminfo 文件”。 解决办法:将.viminfo.tmp临时文件删除掉即可。
其他信息: vim有三种模式-普通(可视命令)模式,命令行模式,编辑模式。启动vim后在任何模式下按Esc键进入到普通模式。普通模式下输入 : 回车进入命令行模式,此时vim最窗口最下面一行为 : 后面可以输入命令行命令.在执行任何命令前要确保在相应的模式下。 1.启动与退出 1)vi filename (启动vim) 2)命令行模式下 :wq=> 保存并退出,:q!=>强行退出,:e!=>放弃修改文件内容,重新载入该文件,:x =>退出,文件更改并保存,ZZ =>同:x命令 (退出vim)
2.基本设置-命令行模式下
:set nu 显示行号 :syn on 显示语法高亮 :set shiftwidth=4 设置自动缩进 4 个空格, 当然要设自动缩进先. :set sts=4 即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格. :set tabstop=4 实际的 tab 即为 4 个空格, 而不是缺省的 8 个. :set expandtab 在输入 tab 后, vim 用恰当的空格来填充这个 tab. :set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc 在vim中打开文件时, 按 tab 键补齐文件名时它会忽略上述文件. :set enc=utf-8 设置文字编码 设置配置文件: :scriptnames 列出配置文件.vimrc所在的目录 :version 用户所用的配置文件.vimrc的位置
3.光标定位(普通模式、可视模式)
-------------------------------------------------------------------------------- $ 当前行的末尾 0 当前行的开头 ^ 当前行第一个字母 gg 文件头 G 文件尾 `` 回到光标跳转前的位置 H 跳到屏幕上的第一行 M 跳到屏幕的中间行 L 跳到屏幕上的最后一行 w: 光标以单词向前移动至单词第一个字母 b: 与w相反,向后移动至单词的第一个字母 e: 光标以单词向前移动至单词最后一字母 ge: 与e相反,向后移动至单词的最后一字母 %: 移动到与制匹配的括号上去(),{},[],<>等 CTRL+G 得到当前光标在文件中的位置 向下翻页(page down): CTRL+f 向上翻页(page up): CTRL+b 向下移动半屏:CTRL+d 向上移动半屏:CTRL+u
补记: .光标定位(普通模式、可视模式)$ 当前行的末尾0 当前行的开头^ 当前行第一个字母gg 文件头G 文件尾`` 回到光标跳转前的位置H 跳到屏幕上的第一行M 跳到屏幕的中间行L 跳到屏幕上的最后一行w: 光标以单词向前移动至单词第一个字母b: 与w相反,向后移动至单词的第一个字母e: 光标以单词向前移动至单词最后一字母ge: 与e相反,向后移动至单词的最后一字母%: 移动到与制匹配的括号上去()...
光标定位技巧的补充: '' 同`` -- 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查 找到某个单词后, 再输入此命令则回到上次停留的位置.
'. -- 此命令相当好使, 它移动光标到上一次的修改行.
`. -- 此命令相当强大, 它移动光标到上一次的修改点.
补记:
行号+G 跳转到指定行
fx 向右跳到本行字符x处(x可以是任何字符) Fx 向左跳到本行字符x处(x可以是任何字符) tx 和fx相同,区别是跳到字符x前 Tx 和Fx相同,区别是跳到字符x后
4.删除和复制(普通模式、可视模式)
-------------------------------------------------------------------------------- 删除:
dd: 删除一行 dw: 删除一个单词,需将光标移到单词的第一个字母。 d$: 删除当前光标到该行的行尾的字母 daw: 删除一个单词,光标在单词任意位置 dnw: 删除N个单词 dnj: 向下删除n行 dnk: 向上删除n行 J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了。 复制:
yy: 复制一行 yw: 复制一个单词,需将光标移到单词的第一个字母。 yaw: 复制一个单词,光标在单词任意位置 ynw: 复制N个单词 ynj: 向下复制n行 ynk: 向上复制n行 修改:
cl: 更改当前字符 cw: 修改当前单词到结尾 cc: 修改当前行 粘贴:p,粘贴用x、d、y操作的文本
可视模式下的方式:
可视模式下,选中要编辑的文字,可执行d、y,操作。
寄存器下的操作: 在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a指定了寄存器a,"B指定了寄存器B。所以,"ayy把当前行放进了寄存器a,以后就可以用"ap来粘贴寄存器a里的内容了。如果不确定寄存器里放了什么内容,可以使用:reg来查看。 Vim提供了一个很有用的特殊寄存器"+,它的内容就是系统剪贴板的内容。可以在Vim里用"+p粘贴出来。
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
(责任编辑:hahack)
|