`
dcj3sjt126com
  • 浏览: 1877879 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何高效使用Vim

vim 
阅读更多

用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能。这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好

学会盲打

配置文件先从最简开始,在 伍级 前别考虑配置插件,千万别硬背命令,千万别直接取用别人的配置文件
基本还是长时间待在 insert mode 下,会觉得 vim 也不过尔尔,也不好用,

这个时候,编辑效率可能比用原来的一般编辑器还低,别人问使用什麼编辑器时,
多半会回答:vim 再配一个 nano, kate, kwrite, gedit, geany 或其他 IDE 之类的

养成习惯待在 normal mode(normal 不是白叫的),只有输入时才进入 insert mode,输入完马上 <ESC>
学习 normal mode 下的移动命令,这个时候输入文字标准流程:

  1. normal mode 移动命令准确定位光标(记住,搜索命令也是移动命令)
  2. 进入 insert mode 编辑(进入 insert mode 别只用 i,要习惯视乎情况,使用 I a A o O s C)
  3. <ESC> 返回 normal mode

这个时候,编辑效应会恢复到和你之前用的普通编辑器一样,甚至有少量提高

学习什麼是 operator(命令 d y c 等),什麼是 motion(所有能移动光标的命令,h j k l w e f t / ? 等等),
学习 operator + motion 的方式,如 ct. (将当前光标到 . (点) 之间的内容删除并进入 insert mode 准备修改)
学习基础的 Ex 命令,:s 什麼的

这个时候,编辑效率开始明显提高,在用其他一般编辑器时,会开始觉得不习惯和低效率

学习 text-objects,知道 operator + text-objects 的方法,可进行手术般精准的定位和修改,
既然你主要用在 c/c++,举一些在这个情况下有用的例子:

ci" (由 change operator 和 text-object i" 组成)

这个命令会找到当前光标所在行的下一个 " 括起来的字符串,清除引号裏面的内容,并进入 insert mode 以方便修改
用起来比解释起来简单,你可用 const char* hello = "Hello world."; 类似这样的代码来测试

yaB (由 yank operator 和 text-object aB 组成)

这个命令会将当前光标所在的代码块({} 括起来的内容,包括花括号本身)复制到默认 register,
方便在其他地方用 p 贴出来(当然,写代码不鼓励 copy and paste),你可用用任何一个 {} 来测试,然后找另外一个地方 p

gUiw (由 make uppercase operator 和 text-object iw 组成)

这个命令会将当前光标所在的 word 全部变成大写
如将 max_size 变成 MAX_SIZE

这个时候,开始知道为什麼 vim 精确高效,而且并不是因为全键盘无需鼠标

习惯 operator + motion 后,发现 . 命令很好用,多注意使用可重复的命令组合
练习使用书签定位,q 记录宏,使用多个 register,使用 args,使用 buffer
使用其他的 Ex 命令

这个时候,想不起没用 vim 之前的日子是怎麼过来的

开始 map 经常反覆使用的命令,开始写 vimscript,开始知道自己需要什麼样的插件
试推荐几个:
pathogen 或 vundle,tagbar, CtrlP, Gundo, UltiSnips,surround,Syntastic,Conque,ack.vim,vim-commentary,fugitive(如果是 git 用户)
还有不少,但多对 c/c++ 没直接帮助,就不提了

这个时候,对其他编辑器提不起兴趣,或许 emacs 除外

拥有完全个人化的 vimrc,基本进入化境,成为江湖上的传说
常有旁人观察你编辑后,激起雄心壮志想要学 vim,尝试几个小时候因为觉得热键太不"人性化”而放弃,
但偶尔会向人提起他见过江湖上有你这麼一号人物

分享到:
评论

相关推荐

    Vim 8.2 PDF 中文用户手册(最新)

    由于提供的文件信息中包含了Vim 8.2的PDF用户手册的结构和内容概览,我们可以从提供的内容中提炼出关于Vim编辑器的知识点,这些知识点覆盖了Vim的基本使用、编辑技巧、高级功能以及如何在不同情况下高效使用Vim。...

    windows中使用Vim

    本资源将深入探讨如何在Windows上安装、配置和高效使用Vim,让Vim爱好者在Windows环境中也能尽享其魅力。 **一、Vim的安装** 1. 下载:首先,你需要从Vim的官方网站或第三方软件仓库下载适用于Windows的Vim安装包...

    Pro Vim英文版

    初学者需要理解这种模式切换的概念,这是高效使用Vim的基础。 **2. Vim的学习曲线** 虽然Vim的学习曲线相对较陡,但一旦掌握了基础,就能显著提高编辑速度。Pro Vim这本书详细介绍了如何快速上手,包括常用的命令行...

    vim doc、plugin文件夹

    保持“doc”文件夹的更新可以帮助你随时获取最新功能的说明,这对于高效使用Vim非常有帮助。 “plugin”文件夹则用于存放Vim的插件。插件是扩展Vim功能的第三方代码,它们可以增加新的命令、改进现有功能或者提供...

    vim handbook中文版

    2. **熟练期**:随着对基本操作的熟悉,用户能够在日常工作中高效使用Vim,但仍可能未深入探索其全部潜力。 3. **精通期**:在此阶段,用户开始探索Vim的高级功能,如宏、脚本、插件等,以进一步提升编辑效率。这也...

    Linux下文本编辑利器:vim编辑器使用指南

    此外,文章还讲解了 vim 的恢复机制和配置文件设置方法,帮助用户在各种应用场景下高效使用 vim。 适合人群:适用于初学者和有一定 Linux 使用经验的技术人员。 使用场景及目标:帮助用户在 Linux 系统下快速掌握 ...

    vim-handbook-cn-71(vim中文手册)

    《vim-handbook-cn-71》是一份详细的Vim中文手册,专为想要深入理解和高效使用Vim编辑器的用户而设计。这份手册涵盖了Vim的基础操作、高级特性以及一些实用技巧,对于在Linux环境中工作的开发者尤其有帮助。Vim,...

    Vim手册中文版7.2[CHM]

    这份"Vim手册中文版7.2[CHM]"正是为中文用户量身定制的学习资料,帮助用户快速理解和高效使用Vim。 CHM文件,全称为Compiled HTML Help,是微软开发的一种帮助文档格式,将HTML页面集合压缩并编译成单个文件,便于...

    如何高效使用VIM

    Vim 是一款文本编辑器,被称为编辑器之神,非常适合在shell 中编辑代码,熟练的使用Vim,可以让你高效的编写代码。 Vim 是Vi 的增强版,所有的类Unix 系统,都自带这两个工具,这两个工具中使用较多的也是Vim。 Vim ...

    vim文档包,包含中文文档,英文文档,英文教程

    本压缩包包含的资源旨在帮助用户深入理解和高效使用Vim。 首先,`vimbook-OPL.pdf`是Vim的官方中文文档,对于中文用户来说,这是一个非常宝贵的参考资料。它详细介绍了Vim的各种操作模式、命令、快捷键以及插件系统...

    notepad++使用vim插件

    总的来说,通过在Notepad++中安装和使用Vim插件,你可以充分利用Notepad++的稳定性和Vim的高效性。这对于那些希望在图形界面下享受Vim强大功能,但又不完全适应纯终端环境的用户来说,无疑是一个理想的选择。不过,...

    vim使用技巧

    ### Vim使用技巧详解 #### 一、Vim简介与特点 Vim是一款极其强大的文本编辑器,它在开源世界中的地位举足轻重,与Emacs并称为两大编辑器巨头。Vim因其高度的可定制性和灵活性而备受程序员喜爱。然而,由于其功能...

    Vim 入门到精通.pdf

    此外,随着Vim使用频率的增加,用户会逐渐开发出属于自己的快捷键和编辑习惯,进一步提升工作效率。 总结来说,Vim是一个学习成本相对较高,但掌握后回报巨大的工具。通过本篇内容的介绍,希望能够帮助用户从入门...

    用vim写程式快n倍——Linux

    了解这两种模式之间的转换对高效使用Vim至关重要。 #### 基本操作介绍 1. **启动Vim**:在命令行输入`vim &lt;filename&gt;`来编辑指定文件。 2. **进入插入模式**:启动Vim后,默认为命令模式。按`i`键(Insert)进入...

    Python-使用更高效的Vim进行开发

    这些资源可以作为起点,帮助你快速搭建一个适合Python开发的高效Vim环境。记得根据自己的需求进行调整和定制,因为每个人的工作习惯和偏好都不同。 总的来说,利用Vim进行Python开发,通过有效的配置和插件选择,...

Global site tag (gtag.js) - Google Analytics