【方向盘】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/,/】


最后


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

相关文章
|
8天前
Axure设计之文本编辑器制作教程
本文介绍如何在Axure中模拟Web端富文本编辑器,实现基本的文本编辑功能,包括自定义字体样式、大小、颜色及对齐方式等。通过拖入矩形、文本域等元件,添加单选框和图标,并设置相应的交互,完成文本编辑器的制作。
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
85 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
30天前
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
20 0
|
2月前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
2月前
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
76 8
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
149 3
|
3月前
|
搜索推荐 Linux 网络安全
Linux系统中的Vim编辑器
【8月更文挑战第21天】Vim是一款功能强大的文本编辑器,在Linux系统中广泛使用。它具有三种基本模式:命令模式,用于执行操作但不能编辑文本;插入模式,允许用户像常规编辑器那样输入文本;底线命令模式,用于保存、退出及查找替换等操作。Vim还支持多窗口编辑、宏录制及插件扩展等功能,并可通过配置文件个性化设置。因其高效性、良好的可移植性和远程编辑能力,Vim特别适用于开发者和系统管理员。
|
3月前
|
开发工具
vim编辑器常用命令
vim编辑器常用命令
87 1
|
3月前
|
Linux 开发工具
Linux vim编辑器
Linux vim编辑器
25 0