简明 Vim 练级攻略

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。

你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。

Vim the Six Billion Dollar editor

Better, Stronger, Faster.

学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。

我建议下面这四个步骤:

  1. 存活
  2. 感觉良好
  3. 觉得更好,更强,更快
  4. 使用VIM的超能力

当你走完这篇文章,你会成为一个vim的 superstar。

在开始学习以前,我需要给你一些警告:

  • 学习vim在开始时是痛苦的。
  • 需要时间
  • 需要不断地练习,就像你学习一个乐器一样。
  • 不要期望你能在3天内把vim练得比别的编辑器更有效率。
  • 事实上,你需要2周时间的苦练,而不是3天。

继续阅读

vi(vim)简单操作手册

vi vim (增强版vi,现在各版本的linux都带有vim)

三种模式:
普通模式:控制光标移动,删除字符,段落复制(按ESC)
编辑模式:包含插入模式和替换模式,新增文字和修改文字
命令行模式/末行模式:保存文字,离开vim,以及其它设置

vim newfile 新建一vim空白文件进行编辑

普通模式
编辑模式下按ESC切换为普通模式
命令 说明

移动:

h 将光标向左移动一格
l 将光标向右移动一格
j 将光标向下移动一格
k 将光标向上移动一格
^ 光标移动到行首,即第一有效字符位置
0 将光标移动到该行的行首,行的第一格位置
$ 将光标移动到行尾
H 将光标移动到该屏幕的顶端
M 将光标移动到该屏幕的中间
L 将光标移动到该屏幕的底端
gg 将光标移动到文章的首行
G 将光标移动到文章的尾行
w 将光标移动到下一单词
b 将光标移动到上一单词
e 将光标移动到下一单词,光标到下一单词词尾
W 和w功能一样,只不过以.或-或)字符为分界
B 和b功能一样,只不过以.或-或)字符为分界
E 和e功能一样,只不过以.或-或)字符为分界
f f后跟一字符可直接跳到本行光标之后有此字符位置
F F后跟一字符可直接跳到本行光标之前有此字符位置
t 和f一样功能,只不过光标停在要搜索字符前一字符位置
T 和T一样功能,只不过光标停在要搜索字符后一字符位置
zt 将当前位置置于屏幕顶端
zb 将当前位置置于屏幕底端
zz 将当前位置置于屏幕中间
zf 创建折行
zc 折叠
zo 打开折叠
% 跳到匹配的括号
Ctrl+u 将窗口向上移动半屏
Ctrl+d 将窗口向下移动半屏
Ctrl+f 向前滚动一整屏
ctrl+b 向后滚动一整屏
ctrl+g 在窗口下方显示信息,告诉当前文件中的位置和文件名等
Ctrl+o 跳到上次光标位置
‘’ 跳到上次光标位置,和ctrl+o不同,它只能和上一次光标位置和当前位置来回跳转
ctrl+i 和ctrl+o功能相反
m 有名标记,在想要做标记位置按ma, 再到移动其它地方,当想回到做标记位置时,按’a就跳回做标记位置

简单搜索:

/ /后跟要搜索的关键词
n 移到下一个找到关键词位置
/\ 找以the结尾的关键词
/t.e 中间替换任何一个字符搜索关键词
* 移动关键词按*,会自动高亮,再按n就可查找此关键词

操作符命令:

x 删除当前光标下的字符,相当于dl,d 和 l的组合使用
X 删除当前光标前一个字符,相当于dh
u 恢复上一次命令,针对字符
U 恢复上一次命令,针对行
ctrl+r 和u相匹配重做
r 替换当前光标位置字符
dw 删除一个单词
D 删除当前光标后面所有字符,相当于d$
d^ 删除当前光标前面所有字符
d0 删除当前光标前所有的字符,置行首
dd 删除一行
c 和d功能一样,只不过删除完会进入插入模式
yy 选定光标所在行复制
p 粘贴yy复制的行,贴在光标所在位置之右
P 粘贴yy复制的行,贴在光标所在位置之左
cw 删除光标所在的单词并且进入插入状态
R 进入替换模式
i 在当前位置进入插入模式
I 将光标移动到行首进入插入模式
o 在本行向下新建一行进入插入模式
O 在本行向上新建一行进入插入模式
a 将光标之后进入插入模式
A 将光标移动到行尾进入插入模式
s 删除光标位置字符进入插入模式,相当于cl
S 删除光标所在行进入插入模式,相当于cc
. 重复上一次命令
~ 改变当前光标下字符的大小写
v 进入字符可视模式
V 进入行可视模式

可视模式:

vjjjjd 选中四个字符删除
Ctrl+v 可选择列进行操作

d 和 p 组合使用
d 删除相当于剪切,并没有完全丢掉,再按p可以粘贴

交换两个字符
x和p组合使用

命令行模式:

: 进入命令行模式

filetype plugin indent on
开启自动识别文件类型,自动用对应文件类型的搭配编辑选项

map ihello 键盘映射F5插入hello单词

set number 显示行号
set nonumber 关闭行号,所有命令前加no为关闭
set ruler 在右下角显示当前光标位置
set autoindent 开始新行时对该行施行上一行缩进方式
set nocompatible 不完全与Vi兼容,所以确保关闭
set nowrap 不要折行显示
set list 显示制表符
syntax enable 打开色彩
colorscheme evening 切换颜色方案

set ignorecase 忽略大小写搜索
set hlsearch 在关键词上按*,自动高亮
set incsearch 搜索时输入一个字符会自动跳到匹配位置,按回车再确定是否要搜索此关键词
set nowrapscan 搜索到头就停止,默认搜索到头会到最后一个匹配位置

marks 查看关于标记的列表
scriptnames 查看vimrc的具体名称和位置
options 新窗口注释选项列表

split 横分一新窗口
3split 指定新分的窗口高度为3
vsplit 竖分一新窗口
3vsplit 指定新分窗口宽度为3

Ctrl+w w 窗口之间切换

! 执行shell命令
r! 执行shell命令并把结果插入到当前光标位置
o 后面跟文件路径,可以横分屏打开文件
O 后面跟文件路径,可以竖分屏打开文件
w 保存
q 退出
qall 全部退出
wqall 全部保存退出
qall 全部强制退出

s/if/hello/ 把本行的第一个if替换成hello
1,$s/if/hello/ 把第一行到最后一行的每行的第一个if替换成hello
1,$s/if/hello/g 把第一行到最后一行的每行的if替换成hello
:240 快速定位到240行

打开多个文档

vim -o a.txt b.txt 横屏打开两文件
vim -O a.txt b.txt 竖屏打开两文件
vim a.txt +42 打开a.txt光标定到42行

继续阅读

解决Ubuntu下安装gVim菜单显示有问题

在 ubuntu 10.10中安装 gvim 默认会把菜单的文件设置为 menu_zh_cn.utf8.vim,而实际在 gvim 的 $RUNTIME/lang 目录下只有 menu_zh_cn.utf-8.vim,注意看,发现区别了把,默认的少了 “-”。这样开启 gvim 时就不能正常加载中文菜单了。

所以把menu_zh_cn.utf-8.vim复制多一份menu_zh_cn.utf8.vim就可以

lok@ubuntu: cd /usr/share/vim/vim72/lang
lok@ubuntu: sudo cp menu_zh_cn.utf-8.vim menu_zh_cn.utf8.vim

重装启动一下,菜单就可以正常显示了!

继续阅读

vi/vim windows下乱码解决方法

VIM真是一个非常优秀的编辑器,

强大到,,,很强大。。。。
不说费话,在WIN下用VIM编辑utf8文件的时候,

中文出现了乱码,查了手册等等东西,找到一个简单的方法

在VIM的安装目录下面下,有一个_vimrc的VIM配置文件

(注:在LINUX下VIM的配置文件在~/.vimrc)
继续阅读