视频教程:
http://www.akae.cn/study/vim.html
参考网页:http://hegangus.blog.163.com/blog/static/63956884201051774418761/
http://www.followstars.cn/article.asp?id=65
1. 基本命令
显示行号:set nu
不显示行号: set nonu
到行首:0 或Home键
到行尾:$ 或End键
获取正在编辑文件的文件名 :file
将选中的字符变成小写:u
将选中的字符变成大写:U
将选中的字符变大小写反转:~
将选中的文字向右移一个TAB:>
将选中的文字向左移一个TAB:<
将选中的代码格式化:=
设置编码格式
:set fenc=utf-8
撤销
撤销前n步操作:undo n
撤消历史向前走:g+
撤消历史向后走:g-
复制当前行:yy
选中复制:v 方向键选中 y进行复制
粘贴:p
删除
x: 删除当前光标下的字符(dl的快捷命令)。
X: 删除当前光标之前的字符(dh的快捷命令)。
D: 删除自当前光标至行尾的内容(d$的快捷命令)。
dw: 删除当前光标至下一个word的开头。
db: 删除当前光标至前一个word的末尾。
diw: 删除当前光标所在的word(不包括空格)。
daw: 删除当前光标所在的word(包括空格)。
dG: 删除当前行至文件尾的内容。
dgg: 删除当前行至文件头的内容。
df: 加一个字母,删除光标到该字母之间的字符(限于当前行)
移动光标
w: 以单词为单位移动光标,3w来使光标移动3个单词的位置。同理,3j、3k等也是可以的。
b: 类似w,光标的移动方向与w相反。
e: 光标移动到下一个单词的末尾。
ge: 与e的作用也是类似的,只是光标的移动方向与e相反。
$、End: 将光标移动到本行的末尾, 接受计数命令,如3$的作用是移动到光标后第三行的末尾。
^: 将光标移动到当前行的第一个非空格字符。
0、Home:键的作用是将光标移动到本行的最前面。值得注意的是,^和0都是不支持计数命令的。
f: 之后加一个字母,就可以把光标定位到本行的下一个此字母所在的位置。
F: 类似f,只是搜索方向相反。它们都是支持计数命令的。可惜的是,这两个命令并不支持中文的搜索。
[number]加上G:跳转到指定行
gg: 直接跳转到文件最开始的那行。
[number]加上%:跳转到文件百分之多少的位置。
H(home)、M(middle)、L(last): 在当前这一屏幕上移动光标。
滚屏:那么ctrl+U和ctrl+D分别是向上和向下滚动半屏。而ctrl+E和ctrl+Y分别是向上和向下滚动一行。
zz: 将当前行置于屏幕中央
zt: 将当前行置于屏幕第一行
zb: 将当前行置于屏幕最后一行。
位置标记,使用m加上a-z这二十六个字母,当你需要跳转的时候,可以通过命令`加上你定义的标记实现。当你忘记自己定义的标记时,可以通过:marks命令查看
ctrl-e: 屏幕向上滚1行
ctrl-y: 屏幕向下滚1行
ctrl-u: 屏幕向上滚1/2屏
ctrl-d: 屏幕向下滚1/2屏
ctrl-f: 屏幕向上滚1屏
ctrl-b: 屏幕向下滚1屏
2. 查找替换命令
(1) :g/null/d
找到null的行并且删掉
(2) 简单替换表达式
替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可。
如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:
:%s/\<four/4/g
显然,这样在处理 “fourty” 的时候还是会出错。用 “\>” 来解决这个问题:
:%s/\<four\>/4/g
如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
:%s/\<four\>/4/gc
(3) 删除多余的空格
要删除这些每行后面多余的空格,可以执行如下命令:
:%s/\s\+$//
命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是
“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。
(4) 匹配重复性模式
星号项 “*” 规定在它前面的项可以重复任意次。因此:
/a*
匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令
/\(ab\)*
匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。
要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。
/ab\+
匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。
要匹配一个可选项,用 “\=”。 例如:
/folders\=
匹配 “folder” 和 “folders”。
(5) 指定重复次数
要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:
/ab\{3,5}
匹配 “abbb”,”abbbb” 以及 “abbbbb”。
当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:
模式 匹配次数
\{,4} 0,1,2,3 或 4
\{3,} 3,4,5,等等
\{0,1} 0 或 1,同 \=
\{0,} 0 或 更多,同 *
\{1,} 1 或 更多,同 \+
\{3} 3
(6) 多选一匹配
在一个查找模式中,”或” 运算符是 “\|”。例如:
/foo\|bar
这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:
/one\|two\|three
匹配 “one”,”two” 或 “three”。
如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间:
/\(foo\|bar\)\+
这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。
再举个例子:
/end\(if\|while\|for\)
这个命令匹配 “endif”,”endwhile” 和 “endfor”。
3. 分割窗口
参考网页:http://hi.baidu.com/esta_pessoa/blog/item/0d274c097347ebad2fddd458.html
同时打开多个文件
上下窗口:vim -o file1 file2 file3 。。。
左右窗口:vim -O file1 file2 file3 。。。
在vim中新建文件分割窗口显示: :new(上下打开) :vnew(左右打开)
比较两个文件
终端打开:vimdiff file1 file2
vim中打开:diffsplit file 或vertical diffsplit file
]c 跳转到下一个差异点
[c 跳转到上一个差异点
折行:
:set foldenable 使能折行
zc: 关闭一个折行
zo: 打开一个折行
zM: 关闭所有的折行
zR: 打开所有的折行
手动更新修改高亮显示::diffupdate
消除差异
:dp 将当前窗口光标所在行put到另外一个窗口的对应行上,以消除差异
:do 将另外窗口光标所在行包含到当前窗口对应的行上,以消除差异
简单理解:dp就是把我的给你,do就是把你的给我
窗口操作
关闭窗口:close,ZZ,q,only
全部关闭:qall,wall(存盘退出)
移动窗口:调整文件顺序
ctrl-w K 会使当前窗口移动到上面并扩展到整屏的宽度。
ctrl-w H 把当前窗口移到最左边
ctrl-w J 把当前窗口移到最下边
ctrl-w L 把当前窗口移到最右边
切换窗口:hjkl 可以用方向键代替
ctrl-w h 跳到左窗口
ctrl-w j 跳到下窗口
ctrl-w k 跳到上窗口
ctrl-w l 跳到右窗口
ctrl-w t 跳到最顶上窗口
ctrl-w b 跳到最底下窗口
4. Vim显示行号、语法高亮、自动缩进的设置
在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc
在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc
在终端 输入以下命令来编辑vimrc配置文件:
sudo vim /etc/vim/vimrc 或者 sudo gedit /etc/vim/vimrc
(1) 显示行号
在文件末端添加一新行,输入 set nu
(2)语法高亮
在文件中找到 "syntax on 这一行,去掉前面的双引号",双引号是注释的意思
(3)自动缩进
在文件末尾添加一行,输入 set autoindent
在添加一行,输入 set cindent
其中 autoindent 是自动缩进; cindent是特别针对 C语言语法自动缩进
注:如果设置好以上设置后,Vim没有作出相应的动作,那么请你把你的VIM升级到最新版,一般只要在终端输入以下命令即可:sudo apt-get install vim 整理一下自己原来所学的知识和工作中用的技术 骑驴找马
分享到:
相关推荐
### VIM学习笔记书知识点详解 #### 一、VIM简介 VIM(Vi Improved),作为VI编辑器的增强版,是一款功能强大的文本编辑器,其功能与Emacs相当,深受程序员和技术人员的喜爱。VIM提供了多种模式,使得用户能够高效地...
### VIM学习的好资料 #### 知识点详解 **一、VIM简介与基本操作** **1.1 操作模式介绍:** - **Normal模式(普通模式)**:这是VIM启动时默认进入的模式,可以进行文本的移动、复制、删除等操作。 - **Insert...
### 知识点详解:Vim学习方法与高级技巧 #### Vim是什么? Vim是一款功能强大的文本编辑器,源于vi编辑器,适用于Unix、Linux以及Windows等操作系统。它以其高度可定制性和高效性,在程序员和系统管理员中广受欢迎...
vim学习教程 不要试图从本手册中去获取什么知识,使用Vim更多的是一种技能而 不是一种知识,Vim的学习需要的更多的不是头脑而是双手,经常按书中 的指示进行示例性的操作,在学习Vim众多精致的技巧时,不要贪图一下 ...
【vim学习资料2017】是一份针对古老但强大的文本编辑器Vim的综合学习资源,这份资料可能包含了2017年时 Vim 的最新发展、技巧和最佳实践。作为一个专业的IT大师,我将为你解析这个主题中的关键知识点。 1. **Vim的...
《ProVim英文版》是一本深入探讨Vim编辑器的权威指南,它为用户提供了全面、详尽的Vim学习资料。Vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱,因其高效的操作方式和高度可定制性而...
【vim学习纪要 -- 自己动手搭建IDE】 Vim(Vi IMproved)是一款强大的文本编辑器,被广泛用于Linux和Unix系统中,同时也支持Windows等其他操作系统。它以其高效、可定制性和丰富的插件系统而闻名,使得许多程序员将...
本“VIM学习资料”包含了VIM的基础知识、进阶技巧以及可能包含的实际操作示例,旨在帮助用户快速掌握这款强大的编辑器。 1. **VIM的基本操作**: - 启动VIM:在终端输入`vim`后跟文件名,如`vim test.txt`。 - ...
**VI VIM 学习资料英文版** Vim(Vi IMproved)是Vi编辑器的增强版本,是一款功能强大的文本编辑器,广泛应用于Linux、Unix和macOS等操作系统。Vi编辑器的历史可以追溯到1976年,由Bill Joy为Berkeley Software ...
### VIM学习笔记知识点详解 #### 一、VIM基本操作与安装 VIM,全称为Vi IMproved,是一款在Linux和其他Unix-like操作系统上广泛使用的高级文本编辑器,基于原始的vi编辑器进行了一系列增强和改进。对于IT行业人士...
### VIM学习知识点详解 #### 一、VIM简介与启动 VIM(Vi IMproved)是一款基于vi的增强版文本编辑器,在Linux系统中广泛使用。它支持颜色配置、多级撤销、图形界面等功能,使得编辑文本变得更加高效便捷。 **启动...
### Vim学习心得与实用技巧详解 #### 一、引言 在IT行业中,文本编辑器是程序员不可或缺的工具之一。其中,Vim作为一款高度可配置的文本编辑器,在Unix平台乃至其他操作系统上都广受欢迎。本文将详细介绍Vim的一些...
**MacVim学习总结** MacVim是一款专为Mac OS X设计的Vim文本编辑器的版本,它在保持Vim的核心功能的同时,融入了Mac的界面风格和操作习惯,使其成为Mac平台上开发者的重要工具。这篇文章将对MacVim的学习进行总结,...
Vim有多个不同的模式,而学习Vim的关键就在于掌握这些模式及其快捷键。以下是Vim的一些基本操作和概念: 普通模式(NORMAL):这是Vim默认的模式,在这个模式下,你可以使用键盘快捷键来移动光标、复制粘贴文本以及...
VIM教程与学习资料汇总(2010-02-19更新) 善用佳软.htm Vim用户手册中文版72.pdf 史上最强的Vim 配置文件(修正版) - redguardtoo的专栏 - CSDN博客.htm 普通人的编辑利器——Vim_善用佳软_新浪博客.htm 神奇...
### VIM学习文档知识点解析 #### 一、引言 VIM是一款强大的文本编辑器,被誉为“人类史上最优秀的文本编辑器”。尽管它有着极高的效率和灵活性,但初学者往往会因为其陡峭的学习曲线而感到困惑甚至放弃。本文将通过...