【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

相关推荐
vip45122 分钟前
Linux 经典面试八股文
linux
大霞上仙25 分钟前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
孤客网络科技工作室2 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南
linux·虚拟机·kali linux
颇有几分姿色2 小时前
深入理解 Linux 内存管理:free 命令详解
linux·运维·服务器
AndyFrank3 小时前
mac crontab 不能使用问题简记
linux·运维·macos
筱源源3 小时前
Kafka-linux环境部署
linux·kafka
算法与编程之美4 小时前
文件的写入与读取
linux·运维·服务器
xianwu5434 小时前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming4 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
Ven%5 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos