vim 操作技巧

发布时间:2020-06-21 16:20:15 作者:PlayWithYou
来源:网络 阅读:1881

1. 关于Vim

vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)

1.1 Vim的几种模式

2. 启动Vim

3. 文档操作

4. 光标的移动

4.1 基本移动

以下移动都是在normal模式下。

上面的操作都可以配合n使用,比如在正常模式(下面会讲到)下输入3h, 则光标向左移动3个字符。

4.2 翻屏

4.3 标记

使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。

5. 插入文本

5.1 基本插入

5.2 改写插入

注意,类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw。

6. 剪切复制和寄存器

6.1 剪切和复制、粘贴

6.2 文本对象

y, d, c, v都可以跟文本对象。

6.3 寄存器

7. 查找与替换

7.1 查找

可以用grep或vimgrep查找一个模式都在哪些地方出现过,

其中:grep是调用外部的grep程序,而:vimgrep是vim自己的查找算法。

用法为: :vim[grep]/pattern/[g] [j] files

g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。

j的含义是grep结束后,结果停在第j项,默认是停在第一项。

vimgrep前面可以加数字限定搜索结果的上限,如

:1vim/pattern/ % 只查找那个模式在本文件中的第一个出现。

 

其实vimgrep在读纯文本电子书时特别有用,可以生成导航的目录。

比如电子书中每一节的标题形式为:n. xxxx。你就可以这样:

:vim/^d{1,}./ %

然后用:cw或:copen查看结果,可以用C-w H把quickfix窗口移到左侧,

就更像个目录了。

7.2 替换

还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令,

语法为 :[range]g/pattern/command

例如 :%g/^ xyz/normal dd。

表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。

关于range的规定为:

7.3 正则表达式

高级的查找替换就要用到正则表达式。

:help pattern得到更多帮助。


8. 排版

8.1 基本排版

8.2 拼写检查

8.3 统计字数

g ^g可以统计文档字符数,行数。 将光标放在最后一个字符上,用字符数减去行数可以粗略统计中文文档的字数。 以上对 Mac 或 Unix 的文件格式适用。 如果是 Windows 文件格式(即换行符有两个字节),字数的统计方法为: 字符数 - 行数 * 2。


9. 编辑多个文件

9.1 一次编辑多个文件

我们可以一次打开多个文件,如

vi a.txt b.txt c.txt

9.2 多标签编辑

9.3 缓冲区

10. 分屏编辑

10.1 水平分割

10.2 垂直分割

10.3 关闭子窗口

10.4 调整窗口大小

10.5 切换和移动窗口

如果支持鼠标,切换和调整子窗口的大小就简单了。

11. 快速编辑

11.1 改变大小写

11.2 替换(normal模式)

11.3 撤消与重做(normal模式)

11.4 宏

12. 编辑特殊文件

12.1 文件加解密

12.2 文件的编码

让vim 正确处理文件格式和文件编码,有赖于 ~/.vimrc的正确配置

12.3 文件格式

大致有三种文件格式:unix, dos, mac. 三种格式的区别主要在于回车键的编码:dos 下是回车加换行,unix 下只有 换行符,mac 下只有回车符。

13. 编程辅助

13.1 一些按键

下面的括号匹配对编程很实用的。

13.2 ctags

有时一个tag可能有多个匹配,如函数重载,一个函数名就会有多个匹配。 这种情况会先跳转到第一个匹配处。

tab键补齐

13.3 cscope

13.4 gtags

Gtags综合了ctags和cscope的功能。 使用Gtags之前,你需要安装GNU Gtags。 然后在工程目录运行 gtags 。

13.5 编译

vim提供了:make来编译程序,默认调用的是make, 如果你当前目录下有makefile,简单地:make即可。

如果你没有make程序,你可以通过配置makeprg选项来更改make调用的程序。 如果你只有一个abc.java文件,你可以这样设置:

set makeprg=javac\ abc.java

然后:make即可。如果程序有错,可以通过quickfix窗口查看错误。 不过如果要正确定位错误,需要设置好errorformat,让vim识别错误信息。 如:

:setl efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%#

%f表示文件名,%l表示行号, %m表示错误信息,其它的还不能理解。 请参考 :help errorformat。

13.6 快速修改窗口

其实是quickfix插件提供的功能, 对编译调试程序非常有用 :)

快速修改窗口在make程序时非常有用,当make之后:

13.7 自动补全

当弹出补全菜单后:

13.8 多行缩进缩出

13.9 折叠

14. 命令行

normal模式下按:进入命令行模式

14.1 命令行模式下的快捷键:

14.2 执行外部命令

15. 其它

15.1 工作目录

15.2 一些快捷键(收集中)

15.3 在线帮助

15.4 一些小功能


推荐阅读:
  1. vim编辑器--使用详解
  2. 解决xshell与vim显示中文乱码的问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vim 操作技巧

上一篇:Spring Boot 2.X 实战教程(4)第一个Spring Boot程序

下一篇:线路选择巡线人员

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》