vim 技巧之复制删除字符–pass

yl # cp一个字符
nyl #cp两n字符(n为cp的字符个数)
4yl (复制光标后的),4yh(复制光标前的)
多按几次ESC,然后按v,进入visual方式,然后就可以移动方向键选中文本,然后按y,就拷贝完成,要想复制,按p.

如果你要从光标处开始复制 4 个字符,则先按 ESC 进入命令方式,然后按 4yl (复制光标后的),4yh(复制光标前的) ,就复制了4个字符到缓冲区中了,然后就可以用 p 命令随便粘贴了
nx 删除多个字符(n为删除的字符个数)
dw 删除1个单词
d10w 删除10个单词
d10W 删除10个单词,忽略标点符号
其它有用的一些删除
删除行尾多个空格 : :%s/\s\+$//g
删除行首多个空格 : %s/^\s*//g
删除重复行:  :%s/^(.*)n1/1$/

.vimrc— vim配置文件

" File: _vimrc
" Date: 2009-09-22
" Author: gashero
" NOTE: 配置一份简单的vim配置文件

set nocompatible "非兼容模式
syntax on "开启语法高亮
set background=dark "背景色
color desert
set ruler "在左下角显示当前文件所在行
set showcmd "在状态栏显示命令
set showmatch "显示匹配的括号
set ignorecase "大小写无关匹配
set smartcase "只能匹配,即小写全匹配,大小写混合则严格匹配
set hlsearch "搜索时高亮显示
set incsearch "增量搜索
"set nohls "搜索时随着输入立即定位,不知什么原因会关闭结果高亮
set report=0 "显示修改次数
set mouse=a "控制台启用鼠标
set number "行号
set nobackup "无备份
set cursorline "高亮当前行背景
set fileencodings=ucs-bom,UTF-8,GBK,BIG5,latin1
set fileencoding=UTF-8
set fileformat=unix "换行使用unix方式
set ambiwidth=double
set noerrorbells "不显示响铃
set visualbell "可视化铃声
set foldmarker={,} "缩进符号
set foldmethod=indent "缩进作为折叠标识
set foldlevel=100 "不自动折叠
set foldopen-=search "搜索时不打开折叠
set foldopen-=undo "撤销时不打开折叠
set updatecount=0 "不使用交换文件
set magic "使用正则时,除了$ . * ^以外的元字符都要加反斜线

"缩进定义
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab
set smarttab
set backspace=2 "退格键可以删除任何东西
"显示TAB字符为<+++
set list
set list listchars=tab:<+

"映射常用操作
map [r :! python % <CR>
map [o :! python -i % <CR>
map [t :! rst2html.py % %<.html <CR>

if has("gui_running")
set lines=25
set columns=80
set lazyredraw "延迟重绘
set guioptions-=m "不显示菜单
set guioptions-=T "不显示工具栏
set guifont=consolas\ 10
endif

if has("autocmd")
"回到上次文件打开所在行
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\| exe "normal g'\"" | endif
"自动检测文件类型,并载入相关的规则文件
filetype plugin on
filetype indent on
"智能缩进,使用4空格,使用全局的了
"autocmd FileType python setlocal et | setlocal sta | setlocal sw=4
"autocmd FileType c setlocal et | setlocal sta | setlocal sw=4
"autocmd FileType h setlocal et | setlocal sta | setlocal sw=4
endif

Vim配置、插件和使用技巧
http://www.jianshu.com/p/a0b452f8f720

#可惜这个注释太亮了 应该可以改一下的
https://github.com/ma6174/vim

vmdiff的基本用法(转)

vmdiff的基本用法就是:
# vimdiff FILE_LEFT FILE_RIGHT
或者
# vim -d FILE_LEFT FILE_RIGHT

如果希望交换两个窗口的位置,或者希望改变窗口的分割方式,可以使用下列命令:
1. Ctrl-w K(把当前窗口移到最上边)
2. Ctrl-w H(把当前窗口移到最左边)
3. Ctrl-w J(把当前窗口移到最下边)
4. Ctrl-w L(把当前窗口移到最右边)
其中1和3两个操作会把窗口改成水平分割方式

光标移动
接下来试试在行间移动光标,可以看到左右两侧的屏幕滚动是同步的。这是因为”scrollbind”选项被设置了的结果,vim会尽力保证两侧文件的对齐。如果不想要这个特性,可以设置:
:set noscrollbind
可以使用快捷键在各个差异点之间快速移动。跳转到下一个差异点:
]c
反向跳转是:
[c
如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入”2]c”,将越过下一个差异点,跳转到第三个差异点。
回页首
文件合并
文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令
dp (diff “put”)
如果希望把另一个文件的内容复制到当前行中,可以使用命令
do (diff “get”,之所以不用dg,是因为dg已经被另一个命令占用了)
如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列:
Ctrl-w, w
在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果:
:diffupdate
如果希望撤销修改,可以和平常用vim编辑一样,直接
, u
但是要注意一定要将光标移动到需要撤销修改的文件窗口中。

同时操作两个文件
在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出:
:qa (quit all)
如果希望保存全部文件:
:wa (write all)
或者是两者的合并命令,保存全部文件,然后退出:
:wqa (write, then quit all)
如果在退出的时候不希望保存任何操作的结果:
:qa! (force to quit all)

https://www.ibm.com/developerworks/cn/linux/l-vimdiff/

How to Install VIM in CentOS5.x

安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在vim 时会提示: vim command not found 。。。 这就是说明我们的Linux环境没有安装vim编辑器,下面我们来说一下如何安装这个编辑器:
网上很多人说要三个包 或者 yum install vim-* 我觉得两个包就够了
yum install vim-common vim-enhance

http://apetec.com/linux/InstallVIM.htm
http://blog.csdn.net/houqd2012/article/details/8111738

Python VIM 开发环境配置–Turning Vim into a modern Python IDE

Finding the perfect IDE for Python isn’t an easy feat. 有人是这样说的 哈哈 有同感呢
作为一个linux人,也用过eclipse 这种 V5的IDE 但一致感觉太过于笨重了,近来在学python 终于找到一个不错的 vim 配置呢
试用了几天 感觉不错,可以代码补全,语法高亮,显示行号等等 ,其实下面这几种都应该不错的,不过我暂时只用了第一种 ,其它有有空再试试喽

第一个
Turning Vim into a modern Python IDE
#基本配置就这几步,详情可以看原作者 博文
git clone https://github.com/sontek/dotfiles.git
cd dotfiles
./install.sh vim

http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
http://wiki.python.org/moin/Vim

第二个

wget http://www.pythonclub.org/_media/python-basic/pydiction-1.2.zip
mkdir ~/.vim/after/ftplugin/ -p
cat pydiction-1.2/README.txt
ls pydiction-1.2
cp pydiction-1.2/python_pydiction.vim .vim/after/ftplugin/
mkdir -p ~/.vim/tools/pydiction/complete-dict
cp pydiction-1.2/complete-dict ~/.vim/tools/pydiction/complete-dict

Python VIM 开发环境配置
http://www.pythonclub.org/python-basic/vim

#这个用过,感觉还不错,不过近来我基本用eclipse+pydev了
http://gnucto.blog.51cto.com/3391516/949021

http://www.cnblogs.com/ifantastic/p/3185665.html
http://www.cnblogs.com/samwei/archive/2011/04/25/2026211.html

在 Vim 中编写 Python 程序 #这个作者没有试过,有空要试一下
http://wiki.woodpecker.org.cn/moin/VimPython

Python VIM 开发环境配置
http://www.pythonclub.org/python-basic/vim

配置基于Vim的Python编程环境
http://linux-wiki.cn/wiki/zh-hans/%E9%85%8D%E7%BD%AE%E5%9F%BA%E4%BA%8EVim%E7%9A%84Python%E7%BC%96%E7%A8%8B%E7%8E%AF%E5%A2%83

Python and vim: Make your own IDE
http://dancingpenguinsoflight.com/2009/02/python-and-vim-make-your-own-ide/

经典vim插件功能说明、安装方法和使用方法介绍(已更新)
http://blog.csdn.net/tge7618291/article/details/4216977

vim 可视模式

可视模式让你可以选择文件的一部分内容,以便作比如删除,复制等工作。

进入可视模式 ##这几个真是好用呀

v

用v命令进入可视模式。当光标移动时,就能看到有一些文本被高亮显示了,它们就是被选中的内容。

三种可视模式

v

一个字符一个字符地选。从按下v的那个字符起,一直到光标所移动到的位置之间的内容都被选中。

V

一行一行地选。从按下V的那行起,一直到光标所移动到的行之间的所有行都被选中。

Ctrl-v

它选中屏幕上的一个矩形区域。以按下Ctrl-v的位置为一个角,光标所在位置为它的对角。

离开可视模式

按下就会离开可视模式。

可视模式下的编辑

在可视模式下删除文本

d

删除所选中的部分。

D

删除所选中部分所在的行。即使没有把一行都选中,也把一行都删除。

复制

v

复制选中的部分。

D

复制所选中部分所在行。即使没有把一行都选中,也把一行都复制。

更改模式

可以随时在可视模式中的三种之间切换,只需按进入想要切换到的模式的命令即可。

更改文本

c

删除所选中的部分并切换到输入模式。

C

删除所选中的部分所在的行并切换到输入模式。

合并行

当选中想合并在一起的行以后,按下

J(大写)

就可以了。

程序员的命令

>

所选中的部分都缩进一个tab。

在所选中的部分删除一个tab的缩进。

=

自动排列所选中的内容。

查看man

K

命令查看关键字的man page,在可视模式它会以选中的文本为关键字。

可视块模式

通过Ctrl-v进入的模式为可视块模式,它会选中一个矩形区域。

插入内容

I字符串

会在每一行所选中内容的开始前添加”字符串”

改变文本

c字符串

会把选中的内空删除并进入输入模式。你只需要在选中的第一行输入一个字符串,当按下后所有行的选中部分都会和第一行一样。这里的字符串中不能包含换行符,如果包含了换行符的话,它就不会这么神奇,就会根普通模式下的c一样了。

C(大写)

会直接删除到行尾,其它与c一样。

A(大写)

会在选中的块后面添加文本。它们是对齐的。

如果要在选中的块紧接每行末尾添加内容,则需用$来指定选择到行尾,而不是简单地用光标。

替换内容

r

用来把选中的内容替换成同一个字符。

缩进

>

>将选中的块缩进一个shiftwidth

固定链接 留言

Vim简明教程5:窗口

九月 3, 2006 @ 9:17 am · 归类于 Vim

打开一个新窗口

最简单的打开新窗口的方法是

:split

它把一个窗口分成两个,光标留在上面的那个窗口中。

通过

Ctrl-w+方向键

来在窗口间切换

比如

Ctrl-ww 或 Ctrl-w Ctrl-w

切换到下一个窗口;

Ctrl-wj 和 Ctrl-wk

分别切换到下一个窗口和上一个窗口。

要关闭窗口,用

:q 或 ZZ 或 Ctrl-wc

找开一个新窗口并在其中打开一个文件

:split 文件名

也可以给split命令分配一个初始命令,也就是说执行完split接着要做的

:split +命令 文件名

比如

:split +/printf three.c

命令会把当前窗口分成两个然后在上面的窗口中查找printf这个字符串。

控制窗口大小

如果给split命令指定一个参数,则表示新找开窗口的高度

比如

:3split alpha.c

打开一个高度为3的窗口并在其中打开alpha.c

:new命令

:new

命令用起来就跟split差不多,只有一点不同:new命令会在新窗口中新建一个文件,而split只是在新窗口中打开原窗口中的内容。

分割并查看(Split and View)

:sview

命令新建一个窗口并且其中的内容是只读的。

改变窗口大小

行数Ctrl-w+

把当前窗口高度增加”行数”行(如不指定行数,默认为1)

行数Ctrl-w-

把当前窗口高度减少”行数”行(如不指定行数,默认为1)

Ctrl-w=

让所有窗口一样高

行数Ctrl-w_

把当前窗口的高度设为”行数“,如不指定则把它最大化。

缓冲

Vim用缓冲来代表一个文件。当你在编缉一个文件时,只是在编缉它的缓冲。当你完成编辑保存时,Vim把缓冲中的内容保存进文件。当然,事情并不是 这么简单。在Vim中设置的标记之类的也保存在缓冲中。你可以同时拥有多个缓冲,当你编辑多个文件时就是这样。当你想要一个Vim窗口,并且想编辑多个文 件时,把这个窗口最大化是不管用的,因为这不是一个窗口,其它的窗口还是能看得见的。此时你可以把不编辑的缓冲隐藏(hide),用命令

:hide

一个缓冲有三种可能的状态:

活动:显示在屏幕上的窗口

隐藏:没有显示在屏幕上的在编辑的缓冲

不活动:缓冲没有在编辑,但是保存着它的信息

第三种状态需要多解释一下,当你编辑另一个文件时,当前文件的内容就没有用了。Vim就关掉它。但是它的一些其它信息可能还有用。(这一部分比较混乱,原文说得也不是很清楚,不懂也无所谓)

要查看缓冲的列表,用

:buffers

命令。输出的第一列是缓冲编号,第二列是状态,第三列是与缓冲对应的文件。

状态共且以下几种:

– 不活动的缓冲
h 隐藏的缓冲
% 当前缓冲
# 其它缓冲
+ 文件被编辑而未保存

选择一个缓冲

:buffer 缓冲编号

如果你不知道缓冲的编号,可以用

:buffer 文件名

下面的命令分割窗品并编辑指定的缓冲

:sbuffer 缓冲编号

:sbuffer 文件名

还有很多关于缓冲的命令:

:bnext 去下一个缓冲
:count bnext 执行count次去下一个缓冲
:count sbnext 先分割窗口,然后执行:count bnext
:count bprevious 去上一个缓冲。如果指定了count,则执行count次
:count sbprevious 先分割窗口,然后执行:count bprevious
:count bNext 同:count bprevious
:count sbNext 同:count sbprevious
:blast 去最后一个缓冲
:sblast 先分割窗口再执行:blast
:brewind 去第一个窗口
:sbrewind 先分割窗口再执行:brewind
:bmodified count 去第count个编辑过的缓冲
:sbmodified count 等于:split加:bmodified

缓冲选项

通常当所有编辑一个文件的窗口都关掉后,这个窗口的缓冲就变成”不活动”,如果不想这样,可以设置

:set hidden

让它变成隐藏而不是不活动。

通常分割/缓冲相关的命令会分割当前窗口,但是也可以让Vim在已经有窗口打开所指定的缓冲时,切换到那个窗口而不是新建一个:

:set switchbuf=useopen

更多关于switchbuf的内容参见23章。

固定链接 留言

Vim简明教程4:块和多文件编辑

九月 1, 2006 @ 11:04 am · 归类于 Vim

这是我在看一本叫做Vim Tutorial的书时作的笔记,去掉了例子,作了一下总结。放上来作为一个Vim的小教程分享一下。本系列文章可转载,但请注明出处:http://mingfal.bloggerspaces.com。

剪切,粘贴和复制

当你在删除文字的时候,比如d, x之类的,被删除的内容都被保存了下来。你可以通过

p

来粘贴它们。

交换字符
有时你会把两个字母打反,比如把the打成teh。用

xp

命令就可以把它们调换位置。原理是这样的,首先x会把e删除并保存,p会把它粘贴到光标所在位置,也就是h之后。

关于粘贴的更多
p命令可以用多次。p命令把内容粘贴在光标之后,而

P

把内容粘贴在光标之前。

标记

Vim允许你在文本中做标记。命令

ma

会在光标所在处做一个名为a的标记。你最多可以在文本中做26个标记(a-z)。

要移动到一个标记,用命令

`标记

其中`是在键盘左上角数字一左边的那个键

要移动到一个标记所在行的行首,用命令

‘标记

其中‘是单引号

标记在删除大量文件内容人时很有用。比如

在你想要删除的文本的开始处做标记ma

然后移动到想删除文本的末尾,用d`a删除从此位置到标记a间的内容。

注意,标记会跟着它所标记处的文本移动(比如在它之前插入或删除了东西)

标记都在哪呢?

:marks

命令会列出所有标记的列表。

复制

y

命令用来复制,它的用法与d很相似。

复制一行

Y(大写)

复制一行内容

管道

!动作 命令

会把由”动作”选中的文本作为”命令”的输入,并用”命令”的输出替换选中的文本。

举个例子,sort命令会对一个文件的内容排序。如果想对当前正在编辑文件的前10行排序,可以这样:

先把光标移动到第一行,然后

!10G sort

!!命令

命令把当前行作为“命令”的输入。(这是一个把系统命令的输出放到文件里的好方法)。

编辑另一个文件

:vi 或 :e

可以关闭当前文件,并打开新的文件。

如果当前文件没有保存,则会出现提示。这时使用

:w

会保存未保存的文件。

View命令

:view 文件

会在Vim中以只读方式打开文件。

处理多个文件

可以在调用Vim时指定多个参数以依次编辑多个文件

Vim 文件1 文件2 文件3 …

默认情况下Vim每次只会编辑一个文件,当编辑完一个文件时,

:next

命令会关闭光前文件打开下个文件开始编辑。

我在哪里
当你在编辑多个文件时有时会忘了自己在编辑哪个。

:args

命令会显示当前正在编辑哪个文件。

编辑上一个文件

当要编辑上一个文件时,用命令

:previous 或 :Next。

编辑每一个或最后一个文件

要编辑第一个文件,用

:rewind

要编辑最后一个文件,用

:last

编辑两个文件

当同时编辑两个文件时,正在编辑的是当前文件,没在编辑的会被当成“另一个文件”,在这两个文件间切换要方便的多。用命令:

Ctrl+^

固定链接 留言

Vim简明教程3:查找

九月 1, 2006 @ 10:55 am · 归类于 Vim

这是我在看一本叫做Vim Tutorial的书时作的笔记,去掉了例子,作了一下总结。放上来作为一个Vim的小教程分享一下。本系列文章可转载,但请注明出处:http://mingfal.bloggerspaces.com。

简单查找

/要查找内容

用/向后查找,紧随其后的要查找的内容。然后按下回车,Vim就会去为你找你想要的东西了。

要注意

.*%/?!$ 还有空格

都有特殊意义,如果要查找的内容中包含这些字符,要在前面加上一个。

要查找区配的下一处,用命令

或 n

它们的作用是相同的。

查找历史

查找命令可以允许你来查看查找的历史,在输入一个/以后,不要按回车,然后再按上下键就可以查看上一条或下一条查工历史了。在某个历史处如果按回车,就会查找此内容。

查找选项

高亮

:set hlsearch

命令可以让所有的查找都高亮显示匹配的部分。

:set nohlsearch

取消高亮选项

增量查找

一般情况下,Vim在查找时要等待用户输入整个要查找的内容,然后再去查找。增量查找则是不等用户输入完毕,就查找已输入的部分。要使用它需要进行下面设置:

:set incsearch

如查取消,则

:set noincsearch

反向查找

?要查找的内容

命令从当前位置开始反向查找,即向文件的开始查找。

改变方向

N

命令可以改变查找的方向并查找改变方向后的下一处匹配。

基本的正则表达式

行首(^)和行尾($)

^表示一行的开始,include会匹配每一处的include,而^include只会匹配在行首的include。
$表示一行的结束,was$只会匹配在行末的was。
如果想要匹配只有一个词the的行,用^the$。

匹配任意单个字符(.)

.匹配任一个字符,比如c.m表示以c开头以m结尾的有三个字母的字符串。

匹配特殊字符

好多字符在正则表达式中有特殊含意。要匹配这一类字符,要在前面加一个。比如,要匹配the.,就要用the.

固定链接 留言

Vim简明教程2:编辑得更快一些

八月 30, 2006 @ 12:43 pm · 归类于 Vim

这是我在看一本叫做Vim Tutorial的书时作的笔记,去掉了例子,作了一下总结。放上来作为一个Vim的小教程分享一下。本系列文章可转载,但请注明出处:http://mingfal.bloggerspaces.com。

按词移动

w

按下w会前进一个词。

b

按下b会后退一个词。

这里,就像在Vim中的大部分情况下一样,在这两个命令前面加上一个数字可以让它们重复做多次。

移动到行首或行末

$

$会让你移动到所在行的末尾。

^

^会让你移动到所在行的开始。也可以做相似的事。不过^会移动到第一个非空的字符处,而会移动到行首。

这两个命令也接受数字参数,比如

2$

会移动到下一行末。

在行上查找

f要查找的字符

f用来在一行上查找一个字符并移动到该字符所在处。比如

fx

用来移动到此行当标后第一个x处。如果有一个数字参数,就可以指定移动到某个指定的匹配位置。

F

F用来向左查找。

移动到指定行

行号G

G命令会把你带到用行号指定的行。如果使用没有行号的G,将会移动到最后一行。

显示当前所在位置

:set number

Vim的可制定性是很强的,所以你可以通过:set设定很多选项。number就是其中之一。它是一个布尔选项,用来控制是否在最左边显示行号。

:set number

可以把它打开。

:set nonumber

则可以关闭此选项。

Ctrl+g

Ctrl+g会显示当然后在的位置。

向上和向下翻屏

Ctrl+u

会向上翻半屏

Ctrl+d

会向下翻半屏

删除文本

dw

dw会删除一个词。你应该可以看得出来,这里的w代表的就是word(词).其实d后面可以加好多东西来控制删除的对象。比如:

d$

会删除从当前位置到行末的所有内容。

数字放在哪

这里有一个疑问,如果想删除三个词,那么应该怎么办?是d3w,还是3dw。其实它们都能做到,不过原理不太一样。d3w是一次删除三个词,而3dw是执行三次删除一个词。其实这两者可以混起来,比如2d3w。

改变文本

c

c用来改变文本。它的用法跟d一样。

cc

用来删除一行并进入输入状态。

cw

用来删除一个词并进入输入状态等。

但是cw跟dw有一个不同之处。dw删除了一个词以后,还删除该词后面的空格。而cw只是会删除这个单词,空格仍然保留。

.

.命令会重复上一次所做的删除(d, x)或改变(c)命令。

合并行

J

J(大写)将当下一行接在当前行后,并在两者间插入一个空格来合并这两行。

替换字符

r替换的字符

r命令把当标处的字符替换成在r命令中指定的字符。

更改大小写

~

通过~可以把光标处的字符用它的大写(如果现在是小写)或小写(如果现在是大写)替换。

Vim有着简洁而强大的宏功能。

q宏名

按下 q+宏名 后会进入宏录制状态,也就是说,此后发生的一切操作都会记录到名为“宏名”的宏中。如果名为“宏名”的宏已经存在,则将它覆盖。

@宏名

会调用名为“宏名”的宏。

特殊字符

当要输入特殊字符时,可以用

Ctrl+k特殊字符代号

可以通过命令

:digraph

来得到一个完整的对应表,来查看特殊符号所对应的代号。

比如,要输入á, 则要通过下面的方法

Ctrl+ka’

固定链接 留言

Vim简明教程1:基本编辑

八月 30, 2006 @ 12:37 pm · 归类于 Vim

这是我在看一本叫做Vim Tutorial的书时作的笔记,去掉了例子,作了一下总结。放上来作为一个Vim的小教程分享一下。本系列文章可转载,但请注明出处:http://mingfal.bloggerspaces.com。

开始之前要做的

touch ~/.Vimrc

这会创建空的~/.Vimrc文件,这会告诉Vim你想要让Vim以Vim方式工作。如果不这样做的话,Vim会以Vi兼空模式运行,会有好多有用的功能没法使用。这也可以在Vim运行过程中通过

:set nocompatible

来实现。

第一运行Vim

gVim file.txt

会运行gvim(Vim的图行化前端),并在其中打开file.txt文件

Vim命令

Vim

会让你在终端打开Vim编辑,而不是像刚才那样打开一个新的窗口。

模式

Vim是一个模式化的编辑器。也就是说,它在不同的模式下会有不同的表现。当最下面的一行是文件名或为空时表示正在普通模式。如果是–INSERT–表示是在编辑模式。而–VISUAL–则表示目前是可视化模式。

插入文本

i

键入i后会从普通模式转变到编辑模式。此时输入的东西将会作为文件的一部分。

当你编辑完毕后,按下就会从编辑模式转回普通模式。同时,不管现在是在什么模式下,都会把你带回普通模式。

移动光标

当你回到命令模式(即普通模式)时,可以用下面的键来移动光标

h(左), j(下), k(上), l(右)

这可能看上去比较奇怪,谁会用l去表示右???但是实际上这是有原因的。移动光标上是在编辑过程中经常要做的,而h , j, k, l就在放右手手指的地方,也就是说按这几个键是最快的。当然,也可以用方向键来移动光标,不过那会大大减低你的编辑速度。

删除字符

x

当你想删除一个字符时,把光标移动到它上面,然后按下x键,它就会消失。

撤消和重做

u

在普通模式下按下u会撤消上一布的操作。

Ctrl+R

如果撤消的次数过多,按下 Ctrl+R 会重做上次撤消的操作。

U

U(大字)是一个特殊的撤消键,它会撤消在在最后编辑的行上所作的所有操作。

退出

ZZ

ZZ会退出Vim并对所编辑的文件保存。

取消修改

:q!

当你编辑完一个文件发现你并不想这样编辑它时,:q! 会让你退出Vim而不保存所作的修改。

追加

a

i会在光标所在安符前插入字符,而a会让你在当标所在的位置之后继续输入内容。

删除一行

dd

dd命令会删除当前所在的一行内容。

新开始一行内容

o

o命令会在光标所在行下面加入一行,并将光标移动的此行的开始以供输入。

O

如果想在光标所在行的上面加入一行,请使用命令O(大写)

获得帮助

:help

:help命令让你可以进入和查看Vim的帮助。用ZZ退出帮助。同时可以用像在Vim一样的h, j, k, l键来移动光标。帮助中会有一些被竖线括起来的词,那其实是超级链接。用Ctrl+]就可以跟随它,Ctrl+t用来后退。如果要查找某一特定主题的帮助,使用

:help 主题

同时

也会起到和:help一样的效果。

重复命令

当要做多次同样的操作时,可以用计数来加快这一过程。

9k

会让你向上移动9行。通过在命令前加一个数字n,就可以执行这一命令n次。

Vim教程

Vim自带了一份Vim教程

:vimtutor

会打开它。

from http://hi.baidu.com/qiaoyuetian/blog/item/fee39666502f5221ab184c39.html

vim多行注释/删除注释

按键操作:

注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如”#”,再按Esc,就会全部注释了。 非常爽哦

删除:先按v,进入visual模式,横向选中列的个数(如”/ /”注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会删除注释符号。

使用替换命令:

:%s/^////g来在全部内容的行首添加//号注释
:2,50s/^////g在2~50行首添加//号注释
反过来替换既是删除操作