vim编辑器使用介绍

vim是由vi发展来的一个强大的文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vim比较难懂,一开始接触时,进入去了都不知怎么退出,但是我么只要深入学习,多应用,慢慢就会适应它。下面介绍下它的一些简单使用方法。

1.打开文件

vim +n 文件名
vim 文件名
n表示打开文件后让光标直接处于第n行。

2.vim三种基本模式

  • 编辑模式,也叫命令模式,默认打开文件时进入的就是这个模式,可以进行复制,删除,替换等编辑操作。
  • 输入模式
  • 末行模式 ,内键命令行接口。
    三种模式间之间切换
    (1)编辑模式进入输入模式,在编辑模式下按下下面字母键。
    i:insert, 在光标所在处输入,常用
    a: append,在光标所在处后方输入
    o:在光标所在处的下方打开一个新行进行输入,常用
    I:在光标所在行的行首输入
    A:在光标所在行的行尾输入
    O:在光标所在处的上方打开一个新行进行输入
    (2)输入模式进入编辑模式,按一下esc键

(3)编辑模式进入末行模式,按一下“:”键
(4)末行模式进入编辑模式,按一下“esc”键

3.关闭文件##

ZZ 保存并退出
ZQ 无条件退出,不保存
:q 退出,没进行任何编辑时
:q! 强制退出,不保存
:wq 保存并退出
:w /PATH/TO/SOMEFILE 把文件保存到其他目录下
:r filename 在光标后面读入文件
:n1,n2 w filename 将n1到n2行间内容保存到另一文件

4,.光标跳转##

字符间跳转
h 左
j 下
k 上
l 右
也可以h,j,k,l 前加数字,跳转到指定的个数字符。例如:5h表示向左移动5 个字符,5k表示光标同一位置向上移动5行
单词间跳转
w 光标跳到下一单词的词首
e 光标跳到当前或后一个单词的词尾
b 跳到当前或当前单词的词首
还可以在前面加数字进行指定个数单词跳转,例如5w,往前跳5个单词到词首
行首行尾跳转
0 数字0,跳转到行首
^ 跳到行首的第一个非空白字符
$ 跳到行尾
行间跳转
G 跳到最后一行
1G,gg:跳到第一行
nG:跳到指定的n行。例如10G,是跳到第十行
n<Enter> :光标向下移动n行

*句间和段间跳转
句间跳转,用小括号:)和(。
段间跳转,用大括号 ‘{’ 和‘}’ 。

5.翻屏操作

ctrl+f 向文件尾部翻一屏
ctrl+b向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
回车键enter:按行往后翻

vim常用的编辑命令

1.字符编辑

x: 删除光标所在的字符
[n]x:删除删除光标开始指定的往后n个字符,例如,vim这个单词,假如光标在字符v处,编辑模式下输入3x,删除vim.。
xp: 交换光标所在字符与其后面的字符的位置,例如,要是光标在单词vi的v上面,编辑模式下输入xp,则他们的位置会改为iv。

2.替换命令

r:替换光标所在处的单个字符,编辑模式下输入一次r后,再输入想要替换为的字符即可。

3.删除命令

dd 删除当前行
ndd:删除光标所在向下n行。例如10dd,删除20行
x:删除光标后面一个字符
X:删除光标前面一个字符
nx:n为数字,删除光标后面连续n个字符,例如10x。连续删除10个字符
d0 删除从当前光标开始到行末的内容
d$ 删除从当前光标开始到行末的内容
cw/cW 删除当前单词从光标开始的部分并进入插入模式
cb/cB 删除当前单词从光标所在位置至单词开始的部分并进入插入模式
dw/dW 删除当前单词从光标开始的部分但不进入插入模式
db/dB 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式
cc:删除当前行并进入插入模式
d} 删除当前段落从光标位置开始到段末的内容
d{ 删除当前段落从光标位置开始到段首的内容
d) 删除当前句子从光标位置开始到句末的内容
d( 删除当前句子从光标位置开始到句首的内容

4.复制命令

yw 复制当前单词从光标开始的部分
yy 复制光标所在行的所有字符
nyy:复制光标开始往后n行,例如5yy,复制5行
y$复制光标开始到行尾字符
y^复制光标开始到行首字符
y0复制光标所在行行首到光标位置字符

5.粘贴命令 p

p:为已经复制好的内容粘贴在光标所在行下方进行粘贴,例如光标要是在第20行,复制的内容将会粘贴在第20行之后。
P(大写):为已经复制好的内容粘贴在光标所在行上方进行粘贴,例如光标要是在第20行,复制的内容将会粘贴在第20行之前。

6.撤消与重做

u 撤消更改
Ctrl-R 重做更改
“.”重复执行上一个操作

7.改变命令c,删除后进入编辑模式

cc删除整行所有字符串,但不会删除该行,进入编辑模式

8.大小写转换

~ 将光标下的字母大小写反向转换
guw 将光标所在的单词变为小写
guw 将光标所在的单词变为小写
gUw 将光标所在的单词变为大写
guu 光标所在的行所有字符变为小写
gUU 光标所在的行所有字符变为大写
g~~ 光标所在的行所有字符大小写反向转换

vim末行模式,编辑模式下按“:”进入

1.地址定界

: n 光标转到第n行,例如5,转到第五行
$ :到最后一行
n1,n2 :指定行范围,n1为起始行,n2为结束行
% :全文
一般配合d,y,c命令使用,例如1,10d删除1到10行
w :/PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中.例如 10,20 w /tmp/1020.txt ,将10到20行保存到tmp目录下的1020.txt文件中

2.查找与替换

/abc :从光标开始向文件尾部开始查找所有为abc字符串
?abc :从光标开始向文件首部开始查找所有为abc字符串
n 重复前一个搜索动作,搜索下一个 ,和命令方向相同
N 反向搜索下一个,和命令方向相反

  • :在文件中向前搜索当前光标所在的单词
    “#” :在文件中向后搜索当前光标所在的单词
  • 查找与替换格式分隔符:s/.../.../ ,s@@@,s###,三种后面加g是全局查找意思,例如
    s###g。
  • :n1,n2s#word1#word2#g n1,n2为数字。意思是在n1,n2
    行之间查找word1这个字符串并替换为word2,例如:100,200s#for#FOR#g,在100到200行之间查找for这单词,替换为大写FOR。
  • :1,$s#word1#word2#g 意思是在第1行到最后一行查找word1这个字符串并替换为word2。
  • :1,$s#word1#word2#gc 在第1行到最后一行查找word1这个字符串并替换为word2。在替换前提示用户是否进行取代。

末行模式查找支持正则表达式

例如:

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#
:1,$s@^[[:space:]]@#@g
2.复制/boot/grub/grub.conf文件至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符
:%s@^[[:space:]]+@@g
3.删除/tmp/rc.sysinit文件中的以#开头,且后面跟至少一个空白字符的行行的#和空白字符
:%s@^#[[:space:]]+@@gc
4.为/tmp/grub.conf文件中的前三行的行首加#号
:1,3s@^#@##@g
5.将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0最后的0改为1

:%s#\(enabled\|gpgcheck\)=0#\1=1#g

vim可视化

可视化是为了便于选择文本,vim引入的一种模式
在编辑模式下按下面的字母:
v 进入字符选择可视化模式,光标经过的地方会反白选择
V 进入行可视化模式,光标经过的行会反白选择
Ctrl+v 进入区块可视化模式,可以用长方形的方式选择字符。
在可视化模式选择后可以按,y,d,进行复制和删除操作

vim多文件编辑功能

1.打开多文件 vim file1 file2 .......

选项:-o 水平分割窗口
-O:垂直分割窗口

2.文件间切换 和退出

:next切到下一个文件
:prev切到上一个文件
:first切到第一个文件
:last 切到最后一个文件
:wqall所有文件保存并退出
:wall保存所有文件
:qall退出所有文件

3.窗口之间切换

按下ctrl+w组合键,然后按箭头键进行切换
单文件窗口下再进行窗口分割:
按下ctrl+w组合键,然后按s:水平分割窗口
按下ctrl+w组合键,然后按v:垂直分割窗口

vim定制

1、行号
显示:set number, 简写为set nu
取消显示:set nomber, set nonu
2、括号匹配高亮
匹配:set showmatch, set sm
取消:set nosm
3、自动缩进
启用:set ai
禁用:set noai
4、高亮搜索
启用:set hlsearch
禁用:set nohlsearch
:noh 取消搜索后结果的高亮显示
5、语法高亮
启用:syntax on
禁用:syntax off
6、忽略字符大小写
启用:set ic
禁用:set noic
7.设置tab键缩进4个字符;set tabstop=4
8.set autoindent 设置自动缩进

  1. set shiftwidth=4 表示每一级缩进的长度为4个空格

注意:在末行模式下的设定,仅对当前vim进程有效。
要永久有效:修改全局配置文件:/etc/vimrc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • Vim几句话介绍Vim是Unix系统上的文本编辑软件(你该不会不知道什么是文本编辑软件吧!),在windows上也...
    何必遠方阅读 3,108评论 0 3
  • 一.vi的基本概念文本编辑器有很多,图形模式下有gedit、kwrite等编辑器,文本模式下的编辑器有vi、vim...
    一线码农阅读 725评论 0 0
  • 目录(?)[-] 关于Vim 1 Vim的几种模式 启动Vim 文档操作 光标的移动 1 基本移动 2 翻屏 3 ...
    SunnyLeong阅读 8,598评论 0 32
  • 夜,很黑,没有星星 你明明就在我的眼前,可是我怎么也寻不到你 我在呐喊声中呼唤你 波涛翻滚,千里浩瀚 归帆点点中没...
    水墨故事阅读 212评论 0 0
  • 说在前头 时间匆匆流逝,8月已经过去三周了,在最开始的两周,每天坚持打卡,坚持输入和输出,而这一周的周四、周五,我...
    Tom_说阅读 5,563评论 14 1