vim使用记录

前言

vim的快捷键实在太多了,担心以后忘记,所以记下来备忘。同时作以分享。

命令模式

在这里插入图片描述

正常模式

在这里插入图片描述

  • 要删除一个字符,只需要将光标移到该字符上按下"x". ( 这是在追 忆古老的打字机时代,在打字机上删除字
    符就是用 xxxx 来覆盖它) 把光标 移到上面例子中的第一行,键入 xxxxxxx(7 个 x) 来删除"A very "。
  • 合并两行 Shift + j或J
  • 关闭再打开文件后,用'0可跳转到上次关闭时所在的行数。

插入模式

插入模式

  • i 光标所在位置插入
  • I 光标所在位置行首插入
  • o 光标所在位置下方新开一行插入
  • O 光标所在位置上方新开一行插入
  • a 光标所在位置下一个字符的位置插入
  • A 光标所在位置行行尾插入

缩进调整

缩进调整的帮助查找命令: :help shift-left-right,或者直接help下面缩进调整的任意一个命令。缩进调整操作的执行与vim中的shiftwidth参数的值有关系,在vimrc配置文件中,将shiftwidth设置为4,表示每一次缩进的宽度均为4个空格长,可以参照进行修改。

以下为常用的缩进快捷操作和命令:

  • 当前行向右缩进一次:操作 >> 或者输入命令 :>
  • 当前行向左缩进一次:操作 << 或者输入命令 :<
  • 从第m行起,到第n行止向右缩进一次: 输入命令 :m,n> 等价于命令 :m>(n-m+1)
  • 从第m行起,到第n行止向左缩进一次: 输入命令 :m,n< 等价于命令 :m<(n-m+1)
  • 从第m行起共n行向右缩进一次: 输入命令 :m>n 等价于命令 :m,m+n-1>
  • 从第m行起共n行向左缩进一次: 输入命令 :m<n 等价于命令 :m,m+n-1<

自动补全

在windows中使用SourceInsight工具编辑代码时,函数、变量的自动补全功能是很强大、很受欢迎的,可以大大地提高工作效率。在vim中也有一样的功能,也许没有那么方便,稍微需要增加一些按键(可能需要自己进行一点复杂的设置也可以实现SourceInsight的自动弹出),但是也足够使用了。

自动补全可以简单地分为两块:单词的自动补全 和 程序代码中符号、函数的自动补全,从本质上来说都是基于单词的补全,但是代码中的补全有其特殊性,主要是结构成员的补全这里。因此两者的操作命令也就稍有不同。

  • 单词自动补全:在inset模式下按如下组合键,ctrl+x ctrl+n 或者 ctrl+x ctrl+p

或者直接按组合键ctrl+n 或 ctrl+p,前者将列出当前缓冲中符合的条件的词,而后者还将包括字典中的符合条件的词。查看详细帮助::help ^x ^n

  • 代码自动补全:在inset模式下按如下组合键,ctrl+x ctrl+o,查看详细帮助: :help ^x ^o

代码的自动补全环境要求稍微复杂一点。

首先,它使用的补全叫Omni Completion, 这里涉及到vim中变量omnifunc的设置,这进一步就涉及到文件类型的识别、关联。因此第一步是需要打开vim中的文件类型自动检测,在前面的vimrc配置文件中已经设置了,即: filetype on。vim中默认可以识别不少文件类型,如:C语言的源文件、java程序文件、html程序文件等等,也就会自动根据文件类型设置omnifunc的值。

其次,omni补全需要使用tags文件中的信息来实现,而且最好是Exuberant Ctags工具(第一文中的ctags工具)生成的tags文件,因此第二步就是安装该工具,并使用它生成项目的tags文件(参考第二文中的项目脚本内容)。

最后,omni补全因为使用tags中的信息实现,因此只能对代码中的全局变量、全局类型、函数、结构成员、类成员进行补全,而不能对代码中的局部变量进行补全,局部变量的补全使用上面的单词补全方式实现。

补充:项目开发中都会使用很多的C标准函数、系统调用等,而包含这些函数的头文件并没有被包含在tags文件中,也就不会提示自动补全,为了提高效率实现更全面的自动补全,可以把标准函数、系统函数的tags补充到vim中,方法是先建立系统头文件的tags文件,然后添加到vimrc配置文件中,如下:

<!-- lang: shell -->
ctags -R -f ~/.vim/systags /usr/include /usr/local/include

然后将 set tags+=~/.vim/systags 设置添加到第二文中的.vimrc配置文件中。这样不仅是补全更高效,而且也是跳转更全面。

从补全列表中选择,向下移动:ctrl+n ,向上移动:ctrl+p,然后按任意键结束补全,注意这个键还是会被输入,所以好的选择是按空格键。

不同tab页面切换

文件间切换
ctrl+6: 两个文件间来回切换
:bn 下一个文件
:bp 上一个文件
:ls 列出当前目录下的文件,带有编号,可通过编号切换
:b1~n切换至第n个文件
在窗口间切换
ctrl+w+方向键
ctrl+w+h/j/k/l
ctrl+ww依次切换至下一个窗口

Ctags

在vimrc中添加tags:

set tags+=.vim/std_tags

+=两边不能有等号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

barbyQAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值