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


最后


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

相关文章
|
13天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
57 14
Linux 10 个“who”命令示例
|
11天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
32 8
|
20天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
107 20
|
20天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
51 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
37 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
20天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
|
6月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
7月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
80 5

热门文章

最新文章