Linux编辑器vim

文章目录


vim的特点

  1. vim是一个专注的编辑器
  2. vim是一个多模式的编辑器

vim的模式

vim有很多种模式,分别是命令模式(command mode)、插⼊模式(Insert mode)和底⾏模式(last line mode)等,本文主要介绍三种模式,各模式的功能区分如下:

  1. 正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到 lastline mode
  2. 插⼊模式(Insert mode)只有在Insert mode下,才可以做⽂字输⼊,按esc可回到命令⾏模式。该模式是我们后⾯⽤的最频繁的编辑模式。
  3. 末⾏模式(last line mode)
    ⽂件保存或退出,也可以进⾏⽂件替换,找字符串,列出⾏号等操作。

在命令模式下,shift+: 即可进⼊该模式。要查看你的所有模式:打开 vim,底⾏模式直接输⼊
:help vim-modes

命令模式

光标定位
  1. gg 光标定位到第一行
  2. shift+g 光标定位到文本结尾
  3. x+gg 光标定位到x行
  4. shift+4 = $ 光标定位到行尾
  5. shift+6 = ^ 光标定位到行首
  6. hjkl 表示方向键,左下上右(jump,king)
  7. n + w/b 以单词为单位在行内快速移动(w向前,b向后)
其他命令
  1. yy 复制当前行
  2. n + yy 复制当前行下的n行
  3. p 粘贴到当前行的下一行
  4. n+p 粘贴n行
  5. u 撤销
  6. ctrl+r 撤销的撤销
  7. n + dd 剪切n行
  8. n + x 删除光标之后的内容
  9. n + shift + x 删除光标之前的内容
  10. ~ 大小写转换
  11. n + r 替换光标之后的n个字符
  12. shift + r 进入替换模式,一行为单位,对代码进行修改
  13. aio进入插入模式,a光标向后移动一格,i光标不移动,o光标向下移动一行
  14. shift + zz 保存并退出vim
  15. shift+: 进入底行模式

底行模式

  1. w 保存
  2. q 退出
  3. wq! 强制保存并退出
  4. set nu 调出行号
  5. set nonu 隐藏行号
  6. /xxx + n 内容关键字搜索,n找到下一个
  7. ! + commend 执行命令行命令
  8. vs other 进行分屏操作
  9. ctrl + ww 跨屏
  10. %s /printf/print/ g 替换所有的printf为print

补充

  1. ctrl + v 由底行模式进入视图模式
  2. ctrl + v -> 区域选择 -> shift+i -> // -> esc 进行批量化注释
  3. ctrl + v -> 区域选择 -> d 批量化去注释
  4. vim filename +n 打开file,并将光标定位到第n行
  5. !x 快速执行历史命令

vim配置

原理:直接在当前用户的目录下找到.vimrc文件进行配置。emmm建议上大模型找你想要的配置,直接粘贴到.vimrc中就行。
一键化配置

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

直接给这行贴到命令行中搞定。


相关推荐
wdfk_prog18 小时前
[Linux]学习笔记系列 -- 底层CPU与体系结构宏
linux·笔记·学习
啊湘18 小时前
VSCODE英文界面切换为中文(适用CURSOR等使用)
ide·vscode·编辑器·bug·cursor
行走的bug...18 小时前
cmake总结
linux·运维·服务器
zfxwasaboy18 小时前
DRM KMS 子系统(3)CRTC
linux·c语言
凌波粒18 小时前
Linux 面试题篇
linux·运维·服务器
Joren的学习记录18 小时前
【Linux运维疑难杂症】k8s集群创建calico网络失败
linux·运维·kubernetes
虾..18 小时前
Linux 线程控制
linux·运维·服务器
镜中人★18 小时前
408操作系统考纲知识点
linux·运维·服务器
liulilittle18 小时前
rinetd 端口转发工具技术原理
linux·服务器·网络·c++·端口·通信·转发
fy zs19 小时前
应用层自定义协议和序列化
linux·网络·c++