如果在linux/unix上做系统维护或者开发,vim是最常用的编辑器之一,特别是在远程登录,没有图形界面的情况下,几乎是唯一选择。vim入门很简单,易于上手。深入使用,会逐步发现有很多快捷方式可以有效提高工作效率,值得学习。俗话说磨刀不误砍柴工。
vim及其前身vi历史悠久,值得信赖。狂热者认为vi远胜UltraEdit,notePad之类的图形界面编辑器,不过我想这种说法仅限于开发或者系统维护人员。在ubuntu上做密集开发时,经常需要进行编辑配置文件,查看日志,更喜欢vi的简单,快速,高效。
1976年左右Bill Joy开发了vi,技术不断进步,vi的各种变种也不断涌现,其中移植性最好、特性最多、使用最广的当属VIM,VIM主要是Bram Moolenaar开发的。vi是“Visual Interface”的缩写,而vim则表示 vi improved。通常也不用搞那么清楚,在ubuntu上vi命令就是指向vim的一个软链接。vim即vi,vi即vim,为了方便,统称vi。
vim的模式
Vim中有三类模式,正常模式(normal),插入模式(insert)和可视模式(visual)。
正常模式中可以执行命令,很多人也把这种模式称为命令模式。默认情况下,Vim启动后会进入这个模式。
插入模式中可以插入/编辑文本。
可视模式中可以可视化地选择一段文本,然后仅针对这段文本执行命令或操作。
在模式中切换
默认情况下,启动vim后进入到normal模式,Normal下输入i到insert模式,按<esc>返回normal模式。normal模式下按v进入visual模式。上面是最简单的切换方式。更多的切换方式有高人做了如下这个图:
+---------+ i,I,a,A,o,O,r,R,s,S +----------+
| Normal +---------->------------+ Insert |
| mode | | mode |
| +----------<------------+ |
+-+---+---+ <Esc> +----------+
| |
| |
| |
| |
| |
v,V V ^ <Esc>
| |
| |
| |
| |
+---+---+----+
| Visual |
| mode |
+------------+
进入,退出
进入:vi(新文件)或者vi filename
退出:
:wq! --强制保存退出
:wq -- 保存退出
:x -- 作用和:wq 一样
ZZ -- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
:q -- 退出,如果有修改会提示保存
:q! -- 不保存而退出
插入命令
i:在当前字符之前插入
I:在当前行首插入
a:在当前字符之后插入
A:在当前行末插入
o: 在当前行下面打开一个新行进行插入
O:在当前行上面打开一个新行进行插入
编辑
x -- 删除当前字符,5x,删除从当前关闭位置开始向后的5个字符
cw -- 删除当前一个字,并进入编辑模式
dw -- 删除当前一个字,但仍处于命令模式
d0 -- 删除当前光标到本行行首的所有内容
d$ -- 删除当前光标到本行行尾的所有内容
D -- 同d$,更方便
dd -- 删除当前行
dgg -- 删除当前行至文件头的内容。
dG 删除当前行到文件末尾的所有内容。
ddp -- 上下两行掉换位置,实际上这个命令是由两个命令先后执行的结果,先dd,将当前行删除并copy到寄存器中,然后使用p命令将这行的内容paste到下一行(一个实用的命令组合)
:#,#d -- 例如,:12,37d 将删除第12~37行之间的所有文本,包括第12和37行
J(大写字母)表示,其功能是把光标所在行与下面一行合并为一行
nJ (大写字母)表示,其功能是把光标所在行与下面n行合并为一行
copy/paste
yy 拷贝当前行到缓存区
dd 删除当前行并拷贝到缓存区,相当于剪切
p:将缓存区的内容拷贝到下一行
P:拷贝到上一行
nyy:例如5yy,拷贝5行内容到缓存区。5dd类推
ab命令-快捷输入
:ab 简写 原始信息
示例:用ibluebox来替代完整的邮箱地址
:ab ibluebox ibluebox@gmail.com
(注意要按回车执行,如果按ESC,则没有起作用)
之后,在插入模式下,输入ibluebox后再按空格,就出现完整的"ibluebox@gmail.com",非常实用
移动光标
:n -- 跳到n行,如:5,跳到第5行
:$ -- 将光标定位到最后一行
0 -- 将光标定位到本行的行首
$ -- 将光标定位到本行的行尾
G -- 将光标定位到本文章的最后一行,与: $功能相同。
w,b -- 向后/者向前移动一个单词
- 将光标定位到上一行的行首
+ 将光标定位到下一行的行首
fb 将光标向前移到当前行上的下一个字母b(或者其他的任意指定的字符)
Fb 将光标向后移到当前行上的上一个字母b(或指定的字符)
{ -- 段首
} -- 段尾
( -- 句首
) -- 句尾 (还没搞清楚段和句的分别)
% -- 跳至匹配括号,支持原括号-(),大括号{},方括号[],但不支持尖括号<>(为什么?)
查找替换
查找
set ic------搜索(忽略大小写)
set noic----搜索(区分大小写)
/str -- 向下搜索str
?str-- 向上搜索
n -- 向前重复搜索
N -- 向后重复搜索
* -- 向后查找光标下词(整词匹配,从使用习惯上来说,向后查找更自然,因此记住 * 就差不多可以了
# -- 向前查找光标下词(整词匹配)
g* -- 向后查找光标下字符串(不必是整词)
g# -- 向前查找光标下字符串(不必是整词)
替换
:%s/regexp/replacement/g替换文件中所有匹配式样
:%s/^/### 在所有行开头增加###
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky,n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
撤销和重做(undo/redo)
撤销 --- u: 撤销上一次的更改
重做--- ctrl+r (可以进行多次undo和redo)
翻页
ctrl+f: 向下翻页
ctrl+b:向上翻页
ctrl+U和ctrl+D分别是向上和向下滚动半屏。
ctrl+E和ctrl+Y分别是向上和向下滚动一行。
排序
用外部的sort 程式協助排序
:1,12!sort -r -n -k4.1,5
-r 是降序排序
-n 是按数字大小排序
-k,表示根据那个字段排序,4.1,表示第4列第一个字符开始 ,5表示到第5个字段为结束
-t 后面跟分隔符,缺省是空格
:1,$!sort -k 3
表示從第1列開始, 以第3 欄資料進行排序
:1,$!sort -k 4 -t"."
表示從第1列開始, 以第8 欄資料進行排序, 分欄字元是 "."
結果會如下 :
192.168.1.20
192.168.1.218
192.168.1.22
218 竟然排在 22 的前面? 是因為以"文字順序"排序的關係
:1,$!sort -k 4 -t"." -n
以数字大小排序
乱码/文件编码 相关设置
在大多数的linux系统上默认编码格式为UTF-8,而windows下默认的编码为GBK,所以在linux上用vi打开gbk编码的文件时就产生乱码。通过在~/.vimrc中增加如下设置,就可以正常打开显示中文:
set fileencodings=utf-8,gb2312,gbk,gb18030
vim笔记-常用命令和技巧
set fileencodings=utf-8,gb2312,gbk,gb18030
有些网上资料上说要增加下面的配置,但在我的ubuntu10.10上只需要增加上面一行配置就可以了。(另外prc不知何意)
termencoding表示终端编码
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
附:查看文件编码可以通过enca命令来看(ubuntu默认没有安装,通过sudo apt-get install enca 安装一下即可
enca /mnt/dshare/1.txt
显示如:
Simplified Chinese National Standard; GB2312 CRLF line terminators
关于编码方面的东东说起来很繁琐,有些细节问题本人也不大清楚,这里有篇文章介绍的还不错:
有时候经常在编辑一个文件的时候打开另一个文件来做查看。这时如果掌握了同时编辑多个文件的技巧,就不要反复退出,打开,再退出,再打开的看起来傻傻的步骤了
要分割屏幕显示多个不同文件,在vi命令提示符后输入:
:split 2.txt -- 简写:sp 2.txt 水平切分新窗口,打开2.txt进行编辑
:vsplit 2.txt -- 简写:vsp 2.txt,,垂直方向切分窗口
vi -o a b c /vi -O a b c 多窗口打开abc三个文件
窗口间的切换:
ctrl + 两次按 w或者ctrl+w +上下左右方向键(或者hjkl)在窗口间切换
:qall -- 退出所有文件
:wall -- 保存所有窗口口的修改
其他
:set 显示设置的所有选项
:set all 显示所有可以设置的选项
:set nu/set nonu:显示或者取消行号(nu-number的简写)
view filename -- 有时只需要查看而不需要修改,为了避免误写文件,可以使用这个命令来打开而不编辑。(使用w!还是可以强制保存内容的)
vim键盘图和思维导图
最后,来一张vim键盘快捷键图
参考
中文在线手册
http://vimcdoc.sourceforge.net/doc/usr_toc.html
http://vimcdoc.sourceforge.net/doc/intro.html
vimdoc -- http://vimdoc.sourceforge.net/ englisth
分享到:
相关推荐
vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令vim常用命令
百度云盘链接附文档中,如有问题可联系我,亲测有效。
VMware-VIM-all-6.7.0-15976714 原版镜像 .................................................................................................................
vmware vcenter6.5 for windows版本。 VMware-VIM-all-6.5.0-14020092
这个资源包括vim-7.4.tar.bz2和vimgdb-for-vim7.4-master.zip
VMware vSphere 5.1 下载地址
vim常用编辑命令 vim常用编辑命令 vim常用编辑命令
VIM编辑器-head命令-trail命令-find命令-grep命令的介绍和说明。
vim键盘图 ....vi-vim-cheat-sheet.gif vi-vim-tutorial-1.gif vi-vim-tutorial-2.gif vi-vim-tutorial-3.gif vi-vim-tutorial-4.gif vi-vim-tutorial-5.gif vi-vim-tutorial-6.gif vi-vim-tutorial-7.gif
VIM常用命令大全VIM常用命令大全VIM常用命令大全VIM常用命令大全
[服务器和数据中心虚拟化].VMware-VIMSetup-all-5.0.0-639890.iso 详情 2.3GB [服务器和数据中心虚拟化].VMware-VIMSetup-all-5.0.0-639890.zip 详情 2GB [服务器和数据中心虚拟化].VMware-viclient-all-5.0.0-...
vim-tmux-focus-events, 使终端vim和tmux更好地协同工作 tmux-focus-events.vimFocusGained 和 FocusLost 自动命令事件在终端vim中不工作。 这个插件在使用vim内部Tmux时恢复它们。以下是相关内容:vim fugitive插件...
Ubuntu 64位免安装版VIM-IDE。 压缩包为直接打包/etc/vim配置及插件包。 root@ubuntu:/etc/vim# tree -L 2 . bundle ale auto-pairs echofunc gdbmgr indentLine LeaderF nerdcommenter nerdtree nerdtree...
vim配置,包含vim常用配置文件及插件
vim系列插件 vim-powerline-develop
amoscykl博主的Vim的终极配置方案,完美的写代码界面! ——.vimrc这篇帖子 ,还有我自己的修改和...YouCompleteMe没有成功,需要的还是要自己摸索,乱码问题 自己搜索vim-airline安装字体 有现成的帖子 我就不重复了
vim-common-7.4.629-7.el7.x86_64.rpm
vim编辑器中常用的命令总结,以图片和树状结构的形式完美的总结了vim中常用命令。如:查找名,修改命令,删除命令
Atom-atom-vim-mode-plus.zip,vim-mode improvedVIM模式增强,atom是一个用web技术构建的开源文本编辑器。
vim-for-server, .vimrc, 简单配置服务器,不带插件 vim-for-servervimrc,简单配置服务器,不带插件。简介这个存储库是 k-vim的简化版本。只删除所有插件,保留基本配置。屏幕截图 安装 。 如果有必要,备份旧的. ...