vim笔记2
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能。这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好
零
学会盲打
壹
配置文件先从最简开始,在 伍级 前别考虑配置插件,千万别硬背命令,千万别直接取用别人的配置文件
基本还是长时间待在 insert mode 下,会觉得 vim 也不过尔尔,也不好用,
这个时候,编辑效率可能比用原来的一般编辑器还低,别人问使用什麼编辑器时,
多半会回答:vim 再配一个 nano, kate, kwrite, gedit, geany 或其他 IDE 之类的
贰
养成习惯待在 normal mode(normal 不是白叫的),只有输入时才进入 insert mode,输入完马上 <ESC>
学习 normal mode 下的移动命令,这个时候输入文字标准流程:
- normal mode 移动命令准确定位光标(记住,搜索命令也是移动命令)
- 进入 insert mode 编辑(进入 insert mode 别只用 i,要习惯视乎情况,使用 I a A o O s C)
- <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笔记2的更多相关文章
- Vim笔记
复制多行: v 可视化,选择多行,然后yy复制.
- vim 笔记
1.替换 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :%s/vivian/sky/(等同于 : ...
- vim 学习笔记系列(前言)
今天上午的时候,看到大神在用vim编程,画面直观,速度很快,操作只需要用命令符就可以实施. 所以可以推断vim的命令符是复杂的,那么学习过程中记忆会很漫长,很痛苦,但是如果记住了这些命令符,并可以熟练 ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- vim 使用笔记
vim命令笔记 a 插入 insert 插入 :%!xxd 以16进制方式进行编辑 :%!xxd -r 从16进制还原
- vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记
vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...
- vim实用笔记
vim实用笔记 真是不知不觉过了一年,前段时间忙着考试什么的,没再写笔记写博客,考完又懒懒地玩了几天.这几天其实都在读别人的博客,感受一下大神的工作和生活感悟,感受一下过来人的经历和经验,对自己总 ...
- Linux学习笔记(二)——文件/目录/VIM
文件和目录管理 及 VI编辑器的使用 文件和目录管理,刚开始学这块的时候感觉内容很多很杂,但是学完进行总结后,发现其实很有条理的而且没什么难度,只是熟练掌握这些常用的命令就行了.至于Vim编辑器,不得 ...
- Vim 命令图解-Gvim使用笔记-2017-5-9
Vim 命令图解-Gvim使用笔记... 图片要是看的不太清楚推荐使用:鼠标右键在新标签中打开或是全屏看图 Vim中常用的一些速查命令: Vim发展历史:1976年Bill Joy开发了vi1988 ...
随机推荐
- samba完美安装
感觉是一个相当强大的东西. Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件.它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.为客户机/服务器型协议,客户机通过该协议 ...
- ios中的http:get,post,同步,异步
一.服务端 1.主要结构:
- css实现定高的元素在不定高的容器中水平垂直居中(兼容IE8及以上)
容器设置相对定位 元素设置宽高,并使用绝对定位,上下左右值均为0,margin:auto 如下所示: <!DOCTYPE html> <html> <head lang= ...
- Python网络连接
import appuifw as ui import httplib from os import abort uia=ui.app uin=ui.note uiq=ui.query e32=ui. ...
- 【Duke-Image】Week_5 Segmentation
Chapter 10 Image Segmentation 图像分割 10.2.7 Edge Linking and Boundary Detection 边缘连接和边界检测 Global proce ...
- 弹性盒布局(FlexBox)
CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定.调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简 ...
- tensorflow版的bvlc模型
研究相关的图片分类,偶然看到bvlc模型,但是没有tensorflow版本的,所以将caffe版本的改成了tensorflow的: 关于模型这个图: 下面贴出通用模板: from __future__ ...
- PHP5.3.3+Apache2.2.16+MySQL5.1.49
轻松配置PHP5.3.3+Apache2.2.16+MySQL5.1.49,下面是有详细的步骤说明. 第一步:下载安装的文件 1. MySQL:下载地址mysql-5.1.49-win32.msi ...
- Balanced Binary Tree [LeetCode]
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- 《精通C#》第十七章
进程简单的说就是一个正在运行的程序,包含了运行该程序所需要的一切资源以及内存分配.线程是进程的基本执行单元,在进程的入口点(类似main())创建的第一个线程称之为主线程.只有一个主线程的进程是线程安 ...