【Linux】vim编辑器

目录

要论Linux纯命令行下什么编辑器最得心应手?当属vim。要论Linux下哪个编辑器对新手极度不友好?当属vim。

为了更方便大家学习vim,我觉得有空可以去看看B站的一个视频:LINK

1.vim是什么?及其背景

有关vim的作者经历可以参考:LINK

vim是一款Linux下文本编辑神器,类似于我们Windows下的记事本,不过vim具有强大的可定制扩展功能,当然还有他那比较复杂的操作方式。

不同于我们平常用的office办公软件,虽然用起来有点冗余,但是全部是图形化界面什么功能只需要鼠标点击的方式进行,可谓是基本没什么使用学习成本却也提供了客观的功能。

vim是上世纪的产物,大概上世纪七八十年代,由Bram Moolenaar程序员写的。那个年代电脑初步发展,当时的电脑基本都是以命令行的形式进行控制的,没有现在这么方便的图形化界面。而且在当时操作系统、软件的发展也都处于萌芽状态,微软尝试做图形化界面也都是vim诞生十年后的事情了,我们的vim作者正值买回来了一台电脑,因为市面上没有或者说难以找到心仪的文本编辑器,Bram Moolenaar就自己动手写了一款文本编辑器,最开始是给自己用的,但是后来在一些程序员交流会上(当时一般程序员交流会都是线下)作者看到大多数程序员都有一些文本编辑的烦恼------没有趁手的文本编辑器...所以Bram Moolenaar也就把自己开发的软件贡献了出来。但当时来说vim还处于最初的版本,后来因为vim确实是比较好用(在当时来说),vim就靠着类似于U盘拷贝的方式在程序员界大受欢迎,用的人多了自然也就有人会对其进行改进为Bram Moolenaar提供改进建议,提供改进代码...还有人甚至把vim移植到了不同的操作系统上(当时没有Windows系统,都是一些比较古老的操作系统,彼此相对分割)。如此以来,在当初Unix系统的年代,为后来诞生的Linux系统提供了一个很好的文本编辑器,这也就是后来Linux诞生,大都预装了vim...当然这也解释了为什么vim的操作为什么那么复杂和复古,毕竟是半个世纪前的产物...

虽然说vim的年龄比较大(大概五十岁???),但是由于Bram Moolenaar等人的坚持维护和更新,在当今vim依然具有强大的功能和高度可拓展性,唯一的槽点就是学习成本比较高...

Vim的作者Bram Moolenaar直到2023年六月份都在维持对vim的更新,之后停更,原因是作者去世了。我认为不用太过担心,因为这个软件十分''畅销'',所以说肯定会有人继续去完成vim的更新工作,就当前的功能来说,vim功能已经十分强大了,肯定够用...

因为vim的操作比较复杂,下面仅仅介绍一些基本的常用命令。

2.vim操作与命令

一开始,vim默认进入的是命令模式,想要编辑内容,需要按i键进入插入模式进行编辑,按esc键回退到命令模式,按:键进入底行模式,输入wq!才可以进行保存退出。

  • 插入模式:编辑模式
  • 命令模式:允许使用者通过命令,来进行文本的编辑控制
    • n + yy 复制当前行
    • n + p 粘贴到下一行
    • u 撤销 ctrl + r 恢复
    • n + dd 剪切/删除指定行、连续的多行
    • 光标移动
      • shift + 4 = $ 光标定位到当前行的行尾
      • shift + 6 = ^ 光标定位到当前行的开始
      • gg 光标定位到整个文本的最开头
      • n + shift + g = G 光标定位到整个文本的最后一行
      • n + h 左 j 下 k 上 l 右
      • w 光标以单词为单位后移
      • b 光标以单词为单位前移
    • shift + ` = ~ 大小写快速切换
    • n + x 删除光标后续的字符
    • n + shift + x 删除光标之前的字符
    • n + r 对光标指定位置的字符进行替换
    • shift + r = R 进入替换模式
  • 底行模式:用来进行vim进行但不限于shell进行交互
    • w 保存
    • q 退出
    • wq 保存并退出
    • ! 强制
    • set nu\nonu 打开\去掉行号
    • / 关键字搜索
    • !command 不退出vim,可以进行shell命令的执行,常用函数查看
    • vs filename 分屏、多屏操作
    • ctrl + w + w 屏幕间切换

3.vim异常退出问题

当vim因为强制停止和掉网等原因异常退出时,vim默认会在当前目录下形成临时文件比如:xxx.swp

  1. ctrl + z + z 强制暂停 --> kill 进程
    a. ps ajx | grep vim 查看进程
    b. jobs 查看后端任务
    c. kill -9 对应进程 杀掉进程
  2. 直接关闭xshell 掉网
    a. 在当前目录下删除临时文件
    b. 在提示下删除临时文件

4.批量化注释和去注释

  1. 批量化注释
    a. ctrl v 进入视图模式
    b. hjkl 区域选择,常用j进行下翻
    c. shift + i = I 进入插入模式
    d. // 写上注释
    e. ESC 退出插入模式
  2. 批量化去注释
    a. ctrl v 进入视图模式
    b. hjkl 区域选择
    c. d 删除

5.vim配置

vim默认是比较难用的,写代码跟Windows上的记事本差不多,甚至不如Windows上的记事本好用...但是经过定制化的vim用习惯的情况下是十分好用的。

下面介绍一条一键配置vim的命令:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

EOF

相关推荐
weixin_4373982112 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~14 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
小林熬夜学编程21 分钟前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
炫彩@之星25 分钟前
Windows和Linux安全配置和加固
linux·windows·安全·系统安全配置和加固
hhhhhhh_hhhhhh_35 分钟前
ubuntu18.04连接不上网络问题
linux·运维·ubuntu
冷心笑看丽美人42 分钟前
探秘 DNS 服务器:揭开域名解析的神秘面纱
linux·运维·服务器·dns
冬天vs不冷2 小时前
Linux用户与权限管理详解
linux·运维·chrome
凯子坚持 c3 小时前
深入Linux权限体系:守护系统安全的第一道防线
linux·运维·系统安全
✿ ༺ ོIT技术༻3 小时前
C++11:新特性&右值引用&移动语义
linux·数据结构·c++
watermelonoops6 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp