Vim最有效的捷径是什么?

我听过不少关于Vim的消息 ,包括优势和缺点。 看起来你应该(做为开发人员)使用Vim比使用任何其余编辑器更快。 我正在使用Vim来作一些基本的东西,并且使用Vim,个人效率最多只有 10倍。 html

当你谈论速度时你应该关心的两件事(你可能不太关心它们,但你应该这么作)是: 正则表达式

  1. 使用左手和右手交替使用键盘是最快捷的方式。
  2. 永远不要触摸鼠标是第二种尽量快的方法。 移动手,抓住鼠标,移动鼠标并将其带回键盘须要很长时间(并且您常常须要查看键盘以确保将手正确地移到正确的位置)

这里有两个例子,说明为何我对Vim的效率低得多。 vim

复制/剪切和粘贴。 我一直这样作。 使用全部当代编辑器,您能够用左手按Shift键 ,而后用右手移动光标以选择文本。 而后按Ctrl + C复制,移动光标并按Ctrl + V粘贴。 编辑器

有了Vim,它太可怕了: 学习

  • yy复制一行(你几乎从不但愿整个行!)
  • [number xx]yyxx行复制到缓冲区中。 但你永远不知道你是否选择了你想要的东西。 我常常要作[number xx]dd而后u撤消!

另外一个例子? 搜索和替换。 spa

  • PSPad中 : 按Ctrl + f,而后键入要搜索的内容,而后按Enter键 。
  • 在Vim中: / ,而后键入要搜索的内容,那么若是有一些特殊的字符放在\\ 每一个特殊字符前,而后按Enter键 。

与Vim的一切都是这样的:彷佛我不知道如何以正确的方式处理它。 .net

NB: 我已经阅读过Vim 备忘 单了 :) code

个人问题是: htm

你使用Vim的方式是什么让你比现代编辑更有效率? ip


#1楼

你在谈论文本选择和复制,我认为你应该看看Vim可视模式

在可视模式下,您可使用Vim命令选择文本,而后您可使用选择执行任何操做。

请考虑如下常见状况:

您须要选择下一个匹配的括号。

你能够这样作:

  • v%若是光标在开始/结束括号上
  • 若是光标在括号内,则vib

您想要在引号之间选择文本:

  • vi“双引号
  • vi'单引号

你想选择一个花括号块(在C风格的语言中很常见):

  • viB
  • vi{

您想要选择整个文件:

  • ggVG

可视块选择是另外一个很是有用的功能,它容许您选择文本的矩形区域,您只需按Ctrl - V启动它,而后选择所需的文本块并执行任何类型的操做,如yank,删除,粘贴,编辑等。编辑面向列的文本很是棒。


#2楼

使用内置文件资源管理器! 命令是:Explore ,它容许您很是快速地浏览源代码。 我在.vimrc有这些映射:

map <silent> <F8>   :Explore<CR>
map <silent> <S-F8> :sp +Explore<CR>

资源管理器也容许您进行文件修改。 我会发布一些我最喜欢的按键,按<F1>将为您提供完整列表:

  • - :最有用:更改成上层目录( cd ..
  • mf :标记文件
  • D :若是没有标记,则删除标记的文件或光标所在的文件。
  • R :重命名光标所在的文件。
  • d :在当前目录中建立一个新目录
  • :在当前目录中建立一个新文件

#3楼

我前几天刚刚发现了Vim的omnicompletion,虽然我认可我对它的做用有点朦胧,但我只是捣碎了Ctrl + x Ctrl + u或者Ctrl + n / Ctrl + p在插入模式下。 它不是智能感知 ,但我还在学习它。

试试看! :help ins-completion


#4楼

批量文本操做!

经过宏:

  • 从录制开始: qq
  • 作东西
  • 中止录音: q
  • 重复: @q (第一次), @@以后。
  • 重复20次: 20@@

或者经过正则表达式:

  • 替换东西:: :%s/[fo]+/bar/g

(但要注意:若是你作后者,你将有2个问题:)。)


#5楼

多个缓冲区,特别是它们之间的快速跳转,用于比较两个文件:bp:bn (正确地从新映射到单个Shift + p或Shift + n )

vimdiff模式(分红两个垂直缓冲区,颜色显示差别)

使用Ctrl + v进行区域复制

最后,标签完成标识符(搜索“mosh_tab_or_complete”)。 那是改变生活的方式。

相关文章
相关标签/搜索