分类: LINUX
2010-07-21 12:51:03
VIM学习笔记
整理:Jims of 肥肥世家
Copyright ? 2005,2006 本文遵从GNU 的自由文档许可证(Free Document License)的条款,
欢迎转载、修改、散布。
发布时间:2005年07月18日
更新时间:2006年05月22日
Abstract
VI编辑器是类UNIX系统中最常用到的编辑器,VIM是VI编辑器的改良版本。
本笔记是我在使用vim时记录下来的备忘录,内容不是很全面,详细介绍
可参考
Table of Contents
1. 普通模式
1.1. 编辑
1.2. 光标移动
2. 编辑模式
3. 命令模式
4. vimrc配置
5. 网上资源
1. 普通模式
在shell中直接打vim filename就会进入普通模式。在这个状态,我们可以通过
不同的按键对文件进行操作和切换到其它模式。按“:”可切换到命令模式,按i,o,a可进入编辑模。
1.1. 编辑
i
进入编辑模式。
o
在当前位置下插入一空行,进入编辑模式,光标位于空行的最开头。
a
光标后移一个字符,进入编辑模式。
v
这入可视模式,可用高亮的色块选择内容。
x or DEL键
删除当前字符,删除内容保存在缓冲区。
xp
左右字符互换。
dd
删除当前行,删除内容保存在缓冲区。
ddp
上下两行的内容互换。
d$
删除当前光标至行尾的所有内容。
dG
删除从当前行至文件未尾的所有行。
u
undo。
v
进地visual模式,移动光标可选择文本。
y
把当前行复制到缓冲区中。
p
把缓冲区中的文本插入到当前位置。
"ay
把当前行复制到a缓冲区。可用26个字母命名多个缓冲区。
"ap
把a缓冲区中的文本插入当前位置。
J
上下两行合并成一行。
.
英文句点的作用是重复执行上次执行的命令,如你按了"ap插入a缓冲区的内容,那你就可按"."
来重复这个操作。
1.2. 光标移动
h,j,k,l
在 vim中,除了可使用光标键在移动光标外,还有一种更方便的光标移动方式。就是使用h,j,k,l这四个键来移动光标。
h控制光标左移,j控制光标下移,k控制光标上移,l控制光标右移。通过使用这四个字母键就可使我们的手不用移动即可控制
光标的移动。刚开始使用可能会有些不习惯,但熟练使用后你会发觉你的输入速度提高不少,强烈建议喜欢vim的朋友使用。
$
光标移动到行尾。
gg
光标移致力到文档的开头。
G
光标移动到文档末尾。
H,L
H控制光标移动到当前屏幕头,L控制光标移动到当前屏幕尾。
{,}
{控制光标上移一个段落,}控制光标下移一个段落
2. 编辑模式
ESC
退出编辑状态。
3. 命令模式
在普通模式上按“:”就可进入命令模式,在左下屏幕我们输入一些操作指令。
:q!
不保存退出vim。
:w
保存文档,但不退出vim。
:x
保存退出vim。
:! command
运行shell命令。
:e filename
编辑/打开一个文件
:s/emacs/vim
在当前行中把第一个emacs替换成vim。
:s/emacs/vim/g
把当前行中所有的emacs替换成vim。
:%s/emacs/vim/g
在全局范围内把emacs替换成vim。
:reg
列出缓冲区内容。
:set all
列出所有参数的配置情况。
:tabe
新建一个标签页。
:tabn or :tabp
切换到下一个\上一个标签页。
:close
关闭当前标签页。
:qa
关闭所有标签页退出。
:TOhtml
把当前文档直接生成html格式文档。
4. vimrc配置
在命令模式下用set命令设置的东西是不能保存的,下次打开vim时又要重新设置。所以vim提供了一个配置文件叫
vimrc,可以保存你的配置信息。该文件在Debian系统中位于/etc/vim/目录下。在该文件中,以双引号开头的是
注释。vim7.0在debian系统中把配置文件分成两部份,一部份是系统级的$VIMRUNTIME/debian.vim,一部份是用户
级的/etc/vim/vimrc。debian.vim的内容一般不要去修改,我们只要修改/etc/vim/vimrc文件即可。
*
syntax on
语法加亮功能,这是VIM最有用的功能之一。语法加亮规则文件位于$VIMRUNTIME/syntax目录下。
*
set autoindent
自动缩排,如当前行是从第3个字符的位置开始编辑的,按回车后光标会自动定位在下一行第三3个字符的位置。
*
set ruler
总是显示光标的位置。
*
set paste
置粘贴模式,这样粘贴过来的程序代码就不会错位了。
*
打开文件时自动回到上次编辑位置。
if has("autocmd")
autocmd BufRead *.txt set tw=78
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal g'\"" |
\ endif
endif
*
退出vim后屏幕保持刚编辑文档的内容。
set t_ti= t_te=
5. 网上资源
*
vimdoc:
*
vimfaq:
VIM列模式
如:
1, 3, 4, 7
1, 3, 4, 7
1, 3, 4, 7
1, 3, 4, 7
1, 3, 4, 7
1, 3, 4, 7
要在多行的 3 前面天上 "2,"这么做:
1.用选定 "3" 这一列
2.输入I, 此时光标会定位在3前
3.输入"2, " 然后按 ESC
4.结果如下:
1, 2, 3, 4, 7
1, 2, 3, 4, 7
1, 2, 3, 4, 7
1, 2, 3, 4, 7
1, 2, 3, 4, 7
1, 2, 3, 4, 7
要删除某列或者某几列:
光标先移动到第一行,第一列,然后按ctrl+v,进入 visual block模式,
再移动光标选择列,再向下移动到尾,按x删除该列即可。
删多列类同。
vim是一个多模式的编辑器。就目前来看,主要有以下几个主要模式。
1.通常模式(n) 在其它任何一个模式下,用ESC或者 ctrl+c 键可以退到通常模式
2.插入模式(i) 在这个模式下,vim像一个常见的编辑器.在通常模式下,用i或者a可以进行本模式,当然,还有一些其它命令也可以.
3.可视模式(v) 在这个模式下,可以使用hjkl进行选择.然后进行copy,paste或者其它操作. 在通常模式下,用v命令进行可视模式.
4. 块操作模式(V) 这是块操作模式. 在通常模式下,用ctrl+v进入本模式.
5. 修改模式(R) 这是改写的模式.很多软件法用insert键来完成这个切换.在vim中,从通常模式用R即可进入改写模式.
6. 扩展命令模式(ex) 这是命令执行模式 在通常模式下用:切换到此模式.
1。在VIM的命令模式下按v键,VIM窗口最下会显示“--VISUAL--”,光标移动到要复制的行,按光标选择,会出现反白范围。选择完毕,按shift+"+y,即可复制到内存。
2。粘贴。本文或者另外文都可以粘贴。
chinaunix网友2011-05-03 10:22:54
分屏启动Vim 使用大写的O参数来垂直分屏。 vim -On file1 file2 ... 使用小写的o参数来水平分屏。 vim -on file1 file2 ... 注释: n是数字,表示分成几个屏。 关闭分屏 关闭当前窗口。 Ctrl+W c 关闭当前窗口,如果只剩最后一个了,则退出Vim。 Ctrl+W q 分屏 上下分割当前打开的文件。 Ctrl+W s 上下分割,并打开一个新的文件。 :sp filename 左右分割当前打开的文件。 Ctrl+W v 左右分割,并打开一个新的文件。 :vsp filename 移动光标 Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W 把光标移到右边的屏。 Ctrl+W l 把光标移到左边的屏中。
chinaunix网友2011-05-03 10:22:54
分屏启动Vim 使用大写的O参数来垂直分屏。 vim -On file1 file2 ... 使用小写的o参数来水平分屏。 vim -on file1 file2 ... 注释: n是数字,表示分成几个屏。 关闭分屏 关闭当前窗口。 Ctrl+W c 关闭当前窗口,如果只剩最后一个了,则退出Vim。 Ctrl+W q 分屏 上下分割当前打开的文件。 Ctrl+W s 上下分割,并打开一个新的文件。 :sp filename 左右分割当前打开的文件。 Ctrl+W v 左右分割,并打开一个新的文件。 :vsp filename 移动光标 Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W 把光标移到右边的屏。 Ctrl+W l 把光标移到左边的屏中。
chinaunix网友2011-05-03 10:15:18
下面是一些vi的小技巧。
:sp
chinaunix网友2011-05-03 10:15:18
下面是一些vi的小技巧。
:sp