【方向盘】Linux下的编辑器之神---Vim的常用操作与命令(简明教程)

简介: 在地球上,流传着两大编辑器的传说。

Emacs:神的编辑器

Vim:编辑器之神


Vim它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升。


Vim的入门学习曲线陡峭,需要记住很多按键组合和命令,如今被看作是高手、Geek们专用的编辑器(装逼必备神器)。


而本文,只讨论Vim以及常用的一些命令总结(主要是为了自己方便使用而记录)


Vim是Vi最受欢迎的变种之一,除了继承了Vi迅捷的编辑方式, Vim的功能已经比原始的Vi强大得多。这也得益于它可以用Vim脚本无限地扩展。 Vim.org 上已经有数千个脚本了,给Vim增加各种各样的特性和功能。


说明


本文只会记录一些常用的命令,能够满足我们平时大部分时候使用Vim,但是并不让你成为专家水平,毕竟我们还是使用为主,我也并不是专业运维,不需要那么厉害的技能,哈哈~~

Vim的四种模式


vim --version:用来查看vim的版本(当前最通用的为7.x版本。8.x版本为最新版本)

四大模式


   正常模式 (Normal-mode)

   启动vim后默认处理该模式。任意模式下,按下Esc键都会进入此模式


   插入模式 (Insert-mode)

   正常模式下:按i I a A(左侧、行首、右侧、行位),就进入插入(编辑)模式


   命令模式 (Command-mode)

   正常模式下:按下:(英文冒号)键,会进入命令模式。这里就可以输入一系列的命令了,这是最强大的地方。常用的有保存退出:

   :wq!:强制保存和退出

   :w:保存但不退出

   :q!:不保存文件,强制退出


   可视模式 (Visual-mode) 块选择模式

   正常模式下:按下v, V, +v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。(再按一下退出到正常模式(或者按两次Esc))。选中后就可以用“编辑模式”的命令操作了:

   d :删除 y:复制 p:粘贴

常用命令(正常模式下)


gg:跳到文首 G:跳至文尾(nG定位到指定的行)


0/$ 和 Home/End:效果一样 跳到行首/行尾


w:跳到下一个字首(比移动光标快一点)


翻页相关:半页 ctrl-d ctlr-u(d=down u=up) 整页 ctrl-f ctrl-b(f=forword,b=backward)


调整屏幕位置(使用较少):zz 让光标所的行居屏幕中央 zt 让光标所杂的行居屏幕最上一行 t=top zb 让光标所杂的行居屏幕最下一行 b=bottom


撤销和恢复:u 撤销 ctrl+r 恢复上一次操作


删除(剪切):dd 删除一行 dw删除一个单词 删除多行:3dd 下同(复制多行原理一样)


复制:yy复制一行 yw复制一个单词 复制多行同上


粘贴:p 当前光标行下粘贴 P 当前行上粘贴


移动整行:<< >> == 光标所在行向左、向右移动一个tab的距离


重复上一步操作:. 这是小数点键


常用命令(命令模式下)


临时显示行号::set number(永久请改配置文件) 简写:set nu


取消行号显示::set nonumber 简写::set nonu


/word或者?/word:向下向上查找指定单词,并且高亮显示出来


n N:重复查找动作(下一个 和 上一个)


取消高亮::noh


文件另存为并退出当前文件::wq! newFileName


多文件编辑、多窗口编辑


多文件编辑

场景:你需要把一个文件的内容复制到另外一个文件,如何做?

答曰:打开2个shell窗口,然后Command + C ; Command + P(原理其实是借用了OS的剪贴板功能)


这样显然是能达到效果的。但稍微麻烦点嘛。显得也不是那么的高级


如果我只想用命令来呢?比如10yy,然后p可以么?不可以的,因为每个vim都是独立的。


那么我们可以这么做:一次性就打开两个文件,然后就可以自由的复制了(因为还是一个vim嘛)


vim file1 file2 file3…可以同时打开多个文件


    查看打开的文件::files 可以查看当前vim打开的文件们


    文件之间跳转:命令行模式中,:n :N表示上一个、下一个文件


   继续再打开一个文件:命令行模式中 :e newfile


这样我们在同一Vim窗口打开了多个文件,就医随意的使用yy p等命令咯


多窗口编辑


加入你的一个文件很长,然后表头信息你又想一直看到怎么办。这个时候多窗口编辑,就能很好的实现效果了。比如这个文件的前10行放在一个窗口,另外一个窗口放其余的(也达到类似excel冻结窗口表头的功效)


    切割::sp 横向 :vs 竖向 :sp newfile 就会把newfile在新编辑窗口打开。否则还是打开当前文件 【sp:split page】


    快速窗口间切换:ctrl+w(两次) 可以依次切换窗口 若要指定顺序(此处先不做记录了)


文本替换(使用较多) [:[range]s/from/to/[flags]]

flags解释:

无 : 只对指定范围内的第一个匹配项进行替换。

g : 对指定范围内的所有匹配项进行替换。

c : 在替换前请求用户确认。

e : 忽略执行过程中的错误。


替换当前行内容 [:s/from/to/]


[:s/from/to/] : 将当前行中的第一个from,替换成to。如果当前行含有多个from,则只会替换其中的第一个。


[:s/from/to/g]:将当前行中的所有from都替换成to。


[:s/from/to/g]:将当前行中的所有from都替换成to,但是每一次替换之前都会询问请求用户确认此操作。

注意:这里的from和to都可以是任何字符串,其中from还可以是正则表达式。


替换指定行的内容 [:33s/from/to/g]

   :.s/from/to/g : 在当前行进行替换操作


   :33s/from/to/g : 在第33行进行替换操作。


   :$s/from/to/g : 在最后一行进行替换操作。


替换所有行的内容 [:%s/from/to/g]


   :%s/from/to/g : 对所有行的内容进行替换。


一些特殊替换的应用


在行首插入:【:%s/^/your_word/】

在行尾插入:【:%s/$/your_word/】

多行变一行:【:0,$s/\n/ /】

多行变一行,中间加入逗号分隔:【:0,$s/\n/,/】


最后


学习命令没任何技巧,只有一句良言:熟能生巧

相关文章
|
21天前
|
Linux 开发工具
Linux的学习之路:5、粘滞位与vim
Linux的学习之路:5、粘滞位与vim
44 0
|
21天前
|
机器学习/深度学习 开发工具
Vim的常用命令 基本使用
Vim的常用命令 基本使用
15 0
|
3天前
|
弹性计算 Unix Linux
Linux:文本编辑器 - vim
Linux:文本编辑器 - vim
10 1
|
4天前
|
数据可视化 Linux Shell
【Linux】开始使用 vim 吧!!!
vim 的操作我只介绍了一部分,还有许多等待大家探索!!!
26 6
|
5天前
|
Unix Shell Linux
在 Linux 上把 Vim 配置为默认编辑器
在 Linux 上把 Vim 配置为默认编辑器
|
7天前
|
Linux Shell 开发工具
【Linux】yum、vim
【Linux】yum、vim
16 2
|
12天前
|
Linux 开发工具 C语言
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
Linux课程四课---Linux开发环境的使用(vim编辑器的相关)
|
14天前
|
运维 自然语言处理 开发工具
【专栏】NeoVim正逐渐取代Vim成为运维人员首选的文本编辑器。这 8 个原因或许是答案,命令对比一目了然!
【4月更文挑战第28天】NeoVim正逐渐取代Vim成为运维人员首选的文本编辑器。其优势包括更好的扩展性、现代化界面、多语言编程支持、异步处理能力、协作功能、持续更新及活跃社区。NeoVim的命令与Vim相似,但在启动配置、插件管理和窗口管理等方面有所优化。总的来说,NeoVim提供了更强大、灵活和现代的编辑体验。
|
14天前
|
Linux 开发工具
【专栏】Linux 必备技能:Vim文本编辑器中快速跳转到文件开头和结尾的方法
【4月更文挑战第28天】本文介绍了Vim文本编辑器中快速跳转到文件开头和结尾的方法。使用`gg`或`1G`可跳转到文件开头,`G`或`$`则用于跳转到结尾。此外,还提到了跳转到指定行(如`10G`)和查找特定字符(如`f`+字符)的技巧,以提升编辑效率。
|
15天前
|
程序员 开发工具
【专栏】Vim是知名文本编辑器,以其高效操作深受程序员喜爱
【4月更文挑战第28天】Vim是知名文本编辑器,以其高效操作深受程序员喜爱。本文到特定行的技巧,包括基础概念(普通模式与插入模式)、使用`G`命令、命令行、相对行号和搜索功能。此外,还分享了高级技巧,如使用标记和结合插件提升效率。掌握这些方法能提升Vim用户的工作效率。