Linux开发工具:vim的介绍和用法及其简单配置

前言

Vim 简介. 编辑. Vim是从 vi 发展出来的一个文本编辑器。. 代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。. [1] vim的设计理念是命令的组合。. 用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。. 同时VIM与很多快捷键设置和 正则表达式 类似,可以辅助记忆。. 并且vim针对程序员做了优化。

给大家看一个vi/vim键盘图

等我们能够练到图片上的这种程度那肯定都是大佬级别的存在了,好了,废话不多说了,我通过centos7的云服务器为例来简单介绍一下vim的基本用法。

Linux编辑器------vim的使用

1.vim的基本概念和基本操作

vi/vim其实就是一款文本编辑器,用起来其实跟我们windows下的记事本有点像,但是功能要比记事本更强大一点,vim是一款多模式的文本编辑器。 我们下面讲解vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

部分案例截图

我这里提前创建了一个test.c文件,然后用vim编辑该文件

输入命令:

vim 文件名

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

命令模式

当前模式就是我们的正常/普通/命令模式(Normal mode),这时候我们暂时不能输入任何想要编辑的内容,我们可以通过该模式执行相应的命令。

下面如果我们想要对该文件进行文本编辑就需要切换到另一种模式,那就是

  • 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

从之前的命令模式切换成相应的插入模式的方式有很多,下面是三种常用的命令模式转插入模式的指令,在命令模式下我们可以输入

a 在当前光标的下一个位置进行插入

i 在当前光标位置进行插入

o 当前光标位置新起一行进行插入

插入模式

目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

当前状态是我们从命令模式下切换到插入模式,然后如果我们要从插入模式切回命令模式直接输入

键盘最左上角的按键

ESC

然后就是我们vim的第三种模式:

  • 末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

:help vim-modes
「shift + ;」, 其实就是输入「:」

底行模式

  • 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:
    • : w(保存当前文件)
    • : wq(保存并退出vim)
    • : q! (输入q! 不保存强制退出vim)
    • :set nu(给vim设置行号)
    • :!+命令(可以在不退出vim的情况下执行命令)

底行模式下输入:wq 回车后

一共有12种模式:six BASIC modes和six ADDITIONAL modes

以上三种的模式切换总结来说就是

2.vim正常模式命令集

  • 插入模式

    • 按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
    • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
    • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
  • 从插入模式切换为命令模式

    • 按「ESC」键
  • 移动光标

    • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
    • 按「G」:移动到文章的最后
    • 按「 $ 」:移动到光标所在行的"行尾"
    • 按「^」:移动到光标所在行的"行首"
    • 按「w」:光标跳到下个字的开头
    • 按「e」:光标跳到下个字的字尾
    • 按「b」:光标回到上个字的开头
    • 按「#l」:光标移到该行的第#个位置,如:5l,56l
    • 按[gg]:进入到文本开始
    • 按[shift+g]:进入文本末端
    • 按「ctrl」+「b」:屏幕往"后"移动一页
    • 按「ctrl」+「f」:屏幕往"前"移动一页
    • 按「ctrl」+「u」:屏幕往"后"移动半页
    • 按「ctrl」+「d」:屏幕往"前"移动半页
  • 复制

    • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
    • 「#yw」:复制#个字到缓冲区
    • 「yy」:复制光标所在行到缓冲区。
    • 「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
    • 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
  • 替换

    • 「r」:替换光标所在处的字符。
    • 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
  • 撤销上一次操作

    • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。
    • 「ctrl + r」: 撤销的恢复
  • 更改

    • 「cw」:更改光标所在处的字到字尾处
    • 「c#w」:例如,「c3w」表示更改3个字
  • 跳至指定的行
    • 「ctrl」+「g」列出光标所在行的行号。
    • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

3.vim底行模式命令集

  • 列出行号
    • 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
  • 跳到文件中的某一行
    • 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
  • 查找字符
    • 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
    • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
  • 保存文件
    • 「w」: 在冒号输入字母「w」就可以将文件保存起来

4. vim操作总结

  • 三种模式
    • 正常模式
    • 插入模式
    • 底行模式
  • vim操作
    • 打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。

5.简单vim配置

配置文件的位置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,
  • 通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 打开自己目录下的.vimrc文件,执行 vim .vimrc

常用配置选项,用来测试

  • 设置语法高亮: syntax on
  • 显示行号: set nu
  • 设置缩进的空格数为4: set shiftwidth=4

6.vim参考文献资料

vim从入门到精通(vim from zero to hero)

相关推荐
耶啵奶膘1 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410832 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.2 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-03 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代3 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方4 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘4 小时前
NFS服务器
运维·服务器
苹果醋35 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰5 小时前
[linux]docker基础
linux·运维·docker