vim操作技巧:操作+文本选择

在编写代码的过程中,选择代码是一项非常常见的操作,其他文本编辑器都是 使用鼠标进行选择,我在使用其他编辑器的时候,编写到一半的时候总是想着 要去找鼠标,然后选择代码,然后在回到键盘上进行操作。对于vim来说代码选 择再加上操作是非常强大的功能。

首先我们需要了解一下什么是文本对象,我对文本对象的理解就是在成对符号 之间的字符串,比如",',{等,包括xml的标签之间的都属于文本对象。选中文 我们都是为了操作文本,vim里面有一些按键用于操作,称之为操作符,比如d, c,y等,d表示删除,c表示删除插入,y表示提取。

我们以一个实例来解释文本操作加文本对象的使用。

This is a series of commands.

上面这句话假设光标所在位置是句首,我们想把commands改为hello,我们要完 成这件事情有很多种方法,下面我们一个一个的来说。

第一种办法就是用l或者将光标移动到.上面,然后用i进入插入模式, 使用删除commands,输入hello,退出插入模式。不得不说, 我在最开始接触vim的时候,我就是这么干 …

more ...

如何高效的使用vim的帮助,以前我都错了

在使用vim的过程中,一定会用help,而vim完善的帮助文档也让人惊叹,到目前为止 我还没没有见过那个项目能把文档写得如此的深入和细致。可是我一直使用help的方式 都是低效的,甚至可是说是愚蠢的,vim这么完善的帮助体系早就考虑到了用户在使用 help时的体验问题。

窗口分割问题

vim的help默认是水平分割窗口的,而我一直以来都是忍受这个水平分割窗口,因为 vim的help都不会有长行,所以水平分割窗口显得窗口资源利用不足,右边一大半 都是空着,特别是电脑屏幕是15寸以上的。那么最后的方式肯定是垂直分割了,这样 不仅可以充分的利用窗口空间,还能看到更多的帮助信息。这样我们需要查看help 的时候输入如下的命令

:vertical botright help number
:vert bo h number

上面的命令会在窗口右边垂直分割出number的帮助信息,第一行代码是完整的输入 ,第二行代码是简写,vertical 表示将vert后面的命令结果垂直分割出窗口显示, botright 表示分割出的新窗口显示在右边。

列表显示

我们在输入帮助命令之后,有时候和当前命令相关的帮助信息不止一条,或者和当前 命令类似的帮助信息,或者有时候我们只是模糊的记得命令,这时候该怎么办?例如 输入:h …

more ...

我的vim常用基础配置,相互参考

一千个vimer有一千个配置,vim的配置其实可当成一门语言来学习,配置复杂性不比学习 一门语言来得容易,而且自己的配置都是经过长期的打磨的。其实在这个过程中可以不断 的磨练自己的意志,当到达一定程度的时候,我确实是离不开vim,他不仅帮助我提高了编 辑速度,而且也不断的受到vim的思想的影响,这种影响不断的深入到我的编程工作中去。 现代的IDE确实在初期给开发者带来了极大的便利,可是这些IDE从来都不会影响到你的思想。 当然,我这里不是再给大家洗脑了,vim也确实存在很多弊端,所以导致很多人在使用上 的困难,虽然有非常完善的文档和强大的社区支持,可是现在谁还有那么多的时间呢?

好了,下面开始进入正题,我不打算大段大段的贴代码,而且每一个配置都做简单的说明, 解释一下我为什么要这么配置,当然,将来这些配置可能都会再改进。

set number
set relativenumber

set nu
set rnu

上面是行号相关的设置,第一行是设置行号显示,第二行是将行号设置为相对行号。后面的 设置是他们的简写模式,建议尽量少的使用简写模式,使用完整的配置可以增加配置文件 的可读性,毕竟看配置文件不只是一次两次。这个配置估计是最流行的了。 relativenumber 将行号设置与当前行的距离,当前行显示绝对行号 …

more ...

VIM配置高亮光标所在行和所在列

使用vim在写东西的时候,要经常移动光标,但是光标太小了,跳 来跳去有时候不知道跳都什么地方去了,所以如果可以高亮光标所 在的行列,这样不管光标怎么移动都能轻松的找到,是不是很cool。 先上个图过个瘾。

高亮光标所在行列

基本设置

设置高亮行和列有两种方式进行设置

set cursorcolumn
set cursorline

" or

set cuc
set cul

我建议使用第一种方式,这样可以看到配置就能知道是干什么用的了, 同时再加上注释,因为随着配置越来越多,最后自己可能都忘了这些 配置是用来干嘛的了。我们看一下效果图

初步效果

美化

我们现在已经能快速的分别光标所在的位置了,但是离我们最终需要的 效果还差一些,因为当前行是一条横线,所以有时候很难区分英文的逗号 和句号,在这个基础上我们需要加入一下配置

highlight CursorLine   cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn …
more ...

上古神器vim插件:你真的学会用NERDTree了吗?

我是一个vimer,还在用着这个上古时代的编辑器,但我并不是守旧派,因为即使是 现在,vim也在不断的创新。我用vim也有一两年的光景了,但是我还是不敢说自己 精通vim,当然我使用vim基本是两个地方,一个是修改系统的配置文件,一个就是 写Python的时候,至于用来写Java我还没有达到这么强大的驾驭能力。在使用Eclipse 的时候还是感觉用起来非常的不习惯,因为我需要不断的去找鼠标,这让我非常的别扭。 而vim可以让我基本不用离开我的大键盘就完成我的编辑工作。

相信所有使用vim的同学都知道文件管理插件NERDTree,这个几乎是所有拥护vim的开发人员 都会使用的插件,可是我在刚开始使用的时候,完全用错了这个插件,使用起来反而是 负担了。今天就总结一下如何优雅的使用NERDTree。

安装和基本用法

安装插件建议使用Vundle进行安装, Vundle的用法很简单,可以到GitHub上面查看。

在NERDTree操作区的一些基本操作:

?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
T: 打开一个文件,但是光标仍然留在NERDTree …
more ...

vim使用技巧:buffer的基本用法

vim缓冲区(buffer)的基本用法

首先用vim打开两个以上的文件

vim 1.txt 2.txt

显示当前缓存列表

:ls
  1 %a   "1.txt"                        line 2
  2      "2.txt"                        line 0

第一列数字是vim自动给buffer分配的编号,第二列中的a表示当前的buffer是被激活,%表明当前buffer是可见的, 第三列是文件的名称,第四列便是当前光标所在第几行

切换到下一个buffer

:bnext
:ls
  1 #    "1.txt"                        line 2
  2 %a   "2.txt"                        line 2

"#"表示轮换文件,通过可以和激活buffer之间进行切换。

切换到上一个buffer

:bprev

切换到下一个buffer

:bnext

切换到第一个buffer

:bfirst …
more ...