vim基本用法

一、vi与vim的区别

1、多级撤消
在vi编辑器中,按u只能撤消上次命令,而在vim里可以无限制的撤消。
2、易用性
vi编辑器只能运行于unix中,而vim不仅可以运行于unix,还可用于windows、mac等多操作平台。
3、语法加亮
vim可以用不同的颜色来加亮你的代码。
4、可视化操作
vim不仅可以在终端运行,也可以运行于windows、 mac os、 windows。
5、对vi完全兼容
可以把vim当成vi来使用。
小结:vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。

二、VI模式

1、命令行模式 (command mode/一般模式)
任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动vi命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,vi会响铃报警。
2、文本输入模式 (input mode/编辑模式)
在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令行模式下,按”ESC”键即可。
3、末行模式 (last line mode/指令列命令模式)
末行模式也称转义模式。
vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。
在命令模式下,用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,vi自动回到命令模式。

三、VIM模式

1、正常模式 (Normal-mode)
启动vim后默认处于正常模式(即命令行模式)。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。
2、插入模式 (Insert-mode)
在正常模式中按下i, a, o, I,A,O键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
3、命令模式 (Command-mode)
在正常模式中,按下:(英文冒号)键,会进入命令模式。
在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
4、可视模式 (Visual-mode)
在正常模式中按下v,V,<ctrl>+v,可以进入可视模式。
可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

四、VI与VIM的常用命令

注:由于VI与VIM在命令上几乎相同,所以这里那VIM为例。
1、模式转换
正常-->输入:以下这几个参数实现的功能都是转为输入模式,只不过转换后的光标所在的位置不同(感兴趣可以试一试,虽然意义不大!)
i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转为输入模式;
A:在当前光标所在行的行尾,转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入-->正常:
ESC
正常-->末行:
:(英文冒号)
末行-->正常:
ESC,ESC
注意:输入模式和末行模式之间不能直接切换。
2、关闭文件(末行模式)
:q 退出;
:q! 不保存退出;
:w 保存;
:w! 强行保存;
:wq 保存退出
:wq! 强制保存并退出
注意:在正常模式下按组合键shift zz可以保存并退出
3、移动光标(正常模式)
1)逐字符移动:
h: 左;
l: 右;
j: 下;
k: 上;
#h: 移动#个字符
2)以单词为单位移动
w: 移至下一个单词的词首;
e: 跳至当前或下一个单词的词尾;
b: 跳至当前或前一个单词的词首;
#w: 移动#个单词
3)行内跳转:
0: 绝对行首;
^: 行首的第一个非空白字符;
: 绝对行尾 4)行间跳转 #G:跳转至第#行; gg: 第一行; G:最后一行 5)末行模式 .: 表示当前行;: 最后一行;
#:第#行;
+#: 向下的#行
4、翻屏(正常模式)
Ctrl+f: 向下翻一屏;
Ctrl+b: 向上翻一屏;
Ctrl+d: 向下翻半屏;
Ctrl+u: 向上翻半屏
5、复制字符
1)正常模式
复制:
yy:复制当前行
nyy:复制当前行至下面的n行
粘贴:
p:粘贴到光标的后面
P:粘贴到光标的前面
2)可视模式
复制:
y:复制当前行
ny:复制当前行至下面的n行
粘贴:
p:粘贴到光标的后面
P:粘贴到光标的前面
6、删除字符(正常模式)
x: 删除光标所在处的单个字符;
#x: 删除光标所在处及向后的共#个字符;
d$或D:从当前光标处删除至行尾;
d^:从当前光标处删除之行首;
dd: 删除当前光标所在行;
#dd: 删除包括当前光标所在行在内的#行;
注:dd相当于剪切操作,如果你dd之后按p或者P可以进行粘贴。
7、替换字符
r:替换单个字符(按完r在按你要替换的字符即可)
R:替换多个字符(从你要替换的位置开始替换,直至你退出正常模式)
8、撤销编辑操作:u
u:撤消前一次的编辑操作;
#u:直接撤消最近#次编辑操作;
温馨提示:连续u命令可撤消此前的n次编辑操作;
9、将另外一个文件(/path/sunhui.txt)的内容填充在当前文件夹中
:r /path/sunhui.txt :填充到当前文件所在光标的后面
10、修改vim配置文件
vim ~/.vimrc:修改当前用户的vim配置文件
vim /etc/vimrc:修改所有用户的vim配置文件
例:在当前用户的vim配置文件中添加显示行数的命令
vim ~/.vimrc:在末行添加 set nu 即可
11、拓展(末行模式)
1)显示或取消显示行号
:set nu //显示
:set number //显示
:set nonu //取消
2)设置语法高亮
:syntax on //开启
:syntax off //关闭
3)分屏
:vsp xxx.x //将两个文件垂直分屏
:ctrl+w w //切屏
注:该特性当前有效,如果想要永久有效需修改配置文件

原文链接:https://blog.csdn.net/qq_37896194/article/details/80369432

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

推荐阅读更多精彩内容

  • vi: Visual Interfacevim: VI iMproved 全屏编辑器, vim模式: 一、打开文件...
    zianL阅读 559评论 0 1
  • vim 简介 vim 有三种基本工作模式: 命令模式任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi...
    奥特曼255阅读 187评论 0 0
  • vim支持各种语言和各种插件。 配置vimrc文件 建议参考https://github.com/amix/vim...
    VKE阅读 688评论 0 0
  • 概述 vim编辑器是linux下享有盛誉的文本编辑器,据说世界上的程序员只用三种编辑器,Vim(编辑器之神), E...
    闲睡猫阅读 961评论 1 13
  • vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色...
    马月半阅读 400评论 0 0