vim快捷键切换标签|vim快捷方式

vim快捷键切换标签|vim快捷方式

1. vim快捷方式

VIM的自动补全功能让你有效的避免输入错误,快速的完成变量名、类名、方法名的输入,善用之可以极大的提高软件开发的工作效率。需要提前说明的是,下面介绍的所有快捷键必须让VIM位于插入模式(即"i"Insert And Replace"模式)。VIM的自动补全方式一共有三种

已知单词

这是VIM中最基本的功能,当你键入某个单词的前几个字母,然后按<C-p>,VIM会自动搜索所有当前打开的缓冲区中的单词完成自动补全。<C-p>表示VIM从当前光标位置向前搜索,你也可以按<C-n>,表示从当前光标位置向前搜索。通常我们可以忽略<C-n>和<C-p>的区别。为了方便记忆,我选择按<C-p>,因为p代表previous,<C-p>表示补全之前(previous)已经键入的单词. 下面两个图分别是<C-n>和<C-p>的效果图,区别在于在自动补全菜单弹出时默认高亮的单词

另外,如果你打开的文件太多,那么自动补全可能会列出一大串来自其他缓冲区中的单词,这时可以使用<C-x><C-p>或者<C-x><C-n>让VIM仅仅列出当前缓冲区的单词。

关键词字典

前面讲到,通过<C-x><C-p>可以使VIM仅仅根据当前缓冲区的内容补全单词,其中,<C-x>表示让VIM进入插入模式的一个子模式,通过EX命令"help ins-complete"可以查阅所有以<C-x>开头的快捷键说明,但这不是本文的重点,不再累述。基于关键字字典补全的快捷键为<C-x><C-k>, ‘k’表示"keyword",即关键字。当<C-x><C-k>按下时,VIM会从"dictionary"全局变量中搜索字典文件,进行自动补全的工作。词典的另一个作用是可以做拼写检查,快捷键是<C-x><C-S>。关于如何利用VIM做拼写检查,将另行撰文介绍。

执行 ":set dictionary+=[字典文件]" 设置字典文件的路径,执行<C-x><C-k>进行自动补全。

Omnicompletefunc

自版本7.0开始,VIM开始提供自动补全的回调函数,通过下面的快捷键触发:

<C-x><C-o>: 调用omnifunc定义的函数

<C-x><C-u>: 调用completefunc定义的函数

omnifunc和completefunc两个回调函数没有本质上的区别,但是在惯例上,omnifunc定义的函数的与特定的文件类型绑定的,不同的文件类型会定义不同的omnifunc。<C-x><C-o>中的’o',即’omnifunc’。而completefunc通常是给第三方插件或者说用户自定义使用的,<C-x><C-u>中的’u',即"User Defined"的意思。

如何编写omnifunc或者completefunc的方法,可通过"help complete-functions"查阅,本文重点在于介绍两个重要的插件,就使用了这两个函数实现C/C++语言的自动补全功能:

supertab

VIM的哲学就是尽量的减少用户需要键入的次数,因此<C-x>开头的快捷键也显得过于麻烦,"help ins-completion"参考手册中有一个例子函数,CleverTab(),在用户按下<Tab>键时,自动判断是否需要调用补全功能还是插入一个<Tab>字符,但是这还不能满足我们日常软件开发的需要,因此supertab插件是对VIM的自动补全功能的重要补充。在缺省情况下supertab就能很好的工作,不需要特别的设置。需要特别说明的是,这个插件是对下面介绍的插件OmniCppComplete的一个有效的补充。主要是因为如果不安装supertab,那么在进行自动补全的时候,需要按<C-x><C-o>进行触发。

OmniCppComplete

如前所述,当你在编写C/C++代码时,如果需要VIM为你自动补全函数名、类名等,需要依赖正确的omnifunc(或者completefunc)的实现,而OmniCppComplete正是应这个需求而出现的。安装好这个插件后,也不需要做任何设置,只需要生成相应的tag文件即可正常工作。需要注意的是,在生成tag文件时,需要使用下面的参数达到最好的效果:

ctags --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q

下面是使用OmniCppComplete的效果图:

本文重点在于介绍VIM的自动补全功能,因此对于C、C++语言中自动补全功能并未作深入的探讨。众所周知,VIM中对C++语言的自动补全有一些缺陷,目前有一些插件如clang_complete、gccsense能够更好的完成C/C++语言的自动补全功能,将另行撰文介绍。多说一句,其实在大多数情况下,利用这些基本的自动补全功能也够用了。特别是针对历史遗留代码居多的大规模项目,这些最基本的功能反而是最有效率的。

2. vi/vim的快捷操作

Emacs:神的编辑器。

Vi/Vim:编辑器之神。Emacs的理念是:“everything in emacs”,即所有的事情都在emacs里解决。你可以把emacs当作一个操作系统,“emacs lisp”是这个操作系统支持的开发语言,你可以使用emacs lisp去开发一切你需要的工具,当然,大部分常用的工具都已经有人开发完成了,并提交到了开源社区。这么做有什么好处呢?好处就是emacs支持丰富的快捷键,只要你熟悉emacs的快捷键,那么在emacs的环境里你就不需要去动鼠标,一切的 一切都在瞬间的敲击键盘中完成。也就是说,emacs就是一个不需要鼠标的操作系统,这个操作系统上所有的软件都使用一套快捷键规范,熟悉这个操 作系统的人,在这个操作系统里做什么都只靠敲击键盘就能够完成了,而且是瞬时的完成。Vi/Vim,这个名字其实不是最体切的,也许比较贴切的名字应该是Vi/Vim/Emacs/Eclipse/Xcode/Sublime text/Firefox/Chrome/Thunderbird.....。不要惊讶,这个名字可以变的很长,“编辑器之神”--“编辑器之精髓”,所有遵照Vi精髓的编辑器、浏览器甚至是邮件客户端都可以放在这个长长的 名字里,因为他们的键盘操作都是可以遵照Vi的按键规范的。掌握Vi就是通过掌握Vi的快捷键规范,用一致的按键方式使用不同软件。是不是有点 “葵花在手,天下我有”的感觉,但是请冷静:)。因为这种状态也不是完美的(也不可能是完美的),因为每种编辑器、浏览器都各有特色,都只是支持 Vi规范的一个子集(你总不能要求网页浏览器也能随意输入文字吧?)。

3. vimdiff快捷键

Vim和emacs

比较成熟的配置有spacevim和spacemacs

个人用emacs比较多,写c的话,加上etags和cscope还有projectile辅助,用起来非常顺手。gtags也可以,但是不能灵活指定文件。如果工程文件规模小的话,还可以用ECB,cedet这类用elisp写的重型插件,用起来感觉跟source insight基本一样。代码补全的话,借助company和clang用起来也非常舒服。用过emacs之后会觉得其他工具真的都是渣渣

4. vim 快捷操作

Vimium插件可以将vim的快捷键操作引入chrome浏览器中,从而让使用浏览器上网冲浪可以通过键盘控制,极大提升效率.以下记录常用的快捷键

1. 浏览网页

h: 左移; j:下移; k:上移; l:右移; d:下移半页; u:上移半页; gg:跳到页头; G:跳到页尾;

2. Tab页切换

J:跳左边一个Tab; K:跳右边一个Tab; g0:跳到第一个Tab; g$:跳到最后一个Tab;H:回到历史,回到该页的前一页; L:沿历史到该页的下一页; T:展示目前所有存活的Tab,回车切换

5. vim切换中文快捷键

按Esc键切换到命令行模式 :1,$d 输入:.,$d 一回车就全没了,这个需要光标在第一行才可以。

6. vim简单使用

在 vim 里执行外部程序是用 ! 加命令名,最简单的比如: :!ls 或者用 ctrl-z 把 vim 推到后台再执行 shell 命令。 如果想用 vim 执行 vim 的脚本,可以用: :source a_vim_script

7. vim常用快捷键

先在终端中输入vimtest.c回车进入vim编辑器,再按一下a键,进入编辑状态,然后输入如下C语言语句:

#include<stdio.h>intmain(){printf("helloworld!\n");}到此,按esc键退出编辑状态,再输入一个冒号(shift+冒号分号那个键),紧跟着输入wq,即输入:wq按回车,即推出vim编辑器回到终端命令窗口(类似xp的命令提示符),之后输入gcctest.c,这步是编译./a.out,这是执行,将会输出helloworld!到此结束,前提是你已经安装gcc

8. vim 快捷键

vim键和emacs都好,vim的模式,是的vim可以有多种编辑状态,普通状态下,所有键盘的按键都是你可以使用的快捷键,这时候,你在用的似乎不是一个编辑器了,更确切的说是,处理文本,键盘不再是输入字符,而是vim的各种命令。这样,使得vim非常快速。写代码过程中,其实我们花更多的时间在调试,修改代码,而不是输入

9. vim编辑模式快捷键

vi是一款所有类Unix系统都内建的一款文本编辑器。随着Linux系统的发展,vi也被进一步开发变成了vim。vim 具有程序编辑的能力,字体是有颜色的,可以方便程序设计。如果你的Linux发行版只有vi,想使用vim,则需要安装。Ubuntu可以使用下面命令来安装vim编辑器。

sudo apt-get install vim

vi编辑器有三种模式,分别是命令模式,编辑模式,末行模式。当我们一开始打开vi的时候,它就处于命令模式。例如使用vi pipe.c这样就打开了pipe.c。打开以后,只能看,不能编辑,因为处于命令模式。在编辑模式的时候,我们才能够编辑文本。从文本模式无法直接切换到末行模式。需要按下ESC进入命令模式,然后按下:(英文冒号),就进入末行模式了。在末行模式下连按2次Esc就切换到了命令模式。或者是在末行模式下输入除了q以为的命令按下回车,也可切换到命令模式。在命令模式下进入编辑模式可以使用i,s,o,a按键。这就是三种模式之间的切换

推荐阅读