当前位置: 首页 > article >正文

OS11.【Linux】vim文本编辑器

目录

1.四种模式

命令模式

 几个命令

插入模式

底行模式

一图展示三种模式之间的关系

2.分屏(多文件操作)

3.配置vim的原理

4.脚本一键配置vim

CentOS 7 x86_64 

其他发行版

5.NeoVim(推荐)


vim文本编辑器是一个多模式的编辑器,因此先介绍它的四种模式

附vim的官网:https://www.vim.org

1.四种模式

其实vim有12种模式,这里只介绍常用的四种,注:替换模式在命令模式的第18个命令中

命令模式

未配置vim的情况下,对文件使用vim编辑,默认处在命令模式下

命令模式:用户的所有输入都会被当做命令,一般不会作为文本输入 

例如新建一个test.txt文件,之后使用vim编辑:

touch test.txt
[root@zhangcoder guest]# vim test.txt

 几个命令

1.gg(全称)

        定位光标到最开始行

2.G

        定位光标到结尾行

3.nG(n代表数字)

        定位光标到第n行

4.yy

        复制光标所在行

5.nyy(n代表数字)

        从光标所在行开始,复制n行(包含光标所在行)

6.p

        粘贴到光标所在行

7.np(n代表数字)

        重复粘贴n次

8.u

        撤销

9.dd

        删除(或剪切)光标所在行

10.ndd(n代表数字)

        从光标所在行开始,删除(或剪切)n行(包含光标所在行)

11.$(即shift+4)

        $称为锚点,定位光标到当前行的结尾

12.^(即shift+6)

        ^称为锚点,定位光标到当前行的开始

13.w

        光标按照单词进行内跨行向前移动

14.b

        光标按照单词进行内跨行向后移动

15.h j k l

用于上下左右移动

16.~(即shift+`)

对光标处的字母大小写转换

17.nr字符(n代表数字)

从光标所在的位置开始,批量替换n个字符为你想要的字符

18.R

进入替换模式,对内容进行整体替换,底下会显示,按esc退出替换模式

19.nx(n代表数字)

从光标所在的位置开始,批量删除n个字符

20.ctrl+r 反向撤销(撤销之前的撤销操作)

插入模式

若要输入文本,需要切换到插入模式,命令模式下按i即可,i为insert的首字母,最底下也会显示"-- INSERT--"

这样就可以写字符串了

底行模式

退出vim必须进入底行模式

方法:按esc从插入模式退回命令模式,再输入:进入底行模式

输入w 只保存不退出

输入q 只退出不保存

输入wq 保存并退出(反过来输qw不行,)

输入w! 强制保存

输入q! 强制退出

输入wq! 强制保存并退出

输入set nu 调出行号

输入set nonu 去除行号

底行模式退回命令模式按esc

底行模式也可以执行命令

例如使用vim向1.c写入了以下代码

不退出vim使用!执行外部命令 

感叹号开头,空一格,输入命令 

:! gcc 1.c
:! ./a.out

 运行结果: 可以键入ENTER返回vim

一图展示三种模式之间的关系

 注:插入模式与底行模式之间的切换不考虑

2.分屏(多文件操作)

先进入底行模式,输入vs 文件名

例如有两个c文件1.c和2.c,对1.c使用vim编辑,之后在底行模式输入vs 2.c

光标处在哪个文件,输入的命令就作用于哪个文件

使用ctrl+ww可以切换光标所处的文件

3.配置vim的原理

原理:修改vimd配置文件

注意:配置某个用户的vim,需要在其家目录下添加配置文件

(注:不建议给root配置,用普通用户即可)

(默认情况,家目录没有vim配置文件) 

添加配置文件 .vimrc(需要有root权限,而且以.开头说明是隐藏文件,需要ls -al命令才能在目录中看到),例如向.vimrc写入以下内容

set nu
i

 这样一打开vim就进入插入模式而且设置了行号

4.脚本一键配置vim

CentOS 7 x86_64 

进入以下网站:https://gitee.com/HGtz2222/VimForCpp

README文件中提到了安装方法,按步骤操作即可,注意不要在root身份下执行安装

 配置后的效果展示:

如果想改默认的缩进,看这里:
家目录下执行:

vim .vimrc

修改第50~第52行 

改了之后要使配置文件生效,使用以下命令:

source .bashrc

其他发行版

TheVimIDE 项目:https://github.com/Shadowsith/TheVimIDE

lunarvim 项目:https://www.lunarvim.org/docs/installation

5.NeoVim(推荐)

NeoVim是Vim的一个分支项目,改进和扩展 Vim 的功能,而且兼容Vim

Github链接:https://github.com/neovim/neovim,里面有详细的配置方法

http://www.lryc.cn/news/2403425.html

相关文章:

  • 基于SFC的windows系统损坏修复程序
  • 强化学习基础概念图文版笔记
  • k8s下离线搭建elasticsearch
  • WAF绕过,网络层面后门分析,Windows/linux/数据库提权实验
  • Oracle杀进程注意事项
  • Vue 3 弹出式计算器组件(源码 + 教程)
  • 监测预警系统重塑隧道安全新范式
  • solidity中sar和>>的区别
  • ESP32与STM32
  • vue在打包的时候能不能固定assets里的js和css文件名称
  • 用设计模式重新思考(类FSM)验证:从混乱到优雅
  • 技巧小结:外部总线访问FPGA寄存器
  • Qt客户端技巧 -- 窗口美化 -- 圆角窗口
  • Go语言爬虫系列教程5:HTML解析技术以及第三方库选择
  • 理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
  • 文件上传漏洞深度解析:检测与绕过技术矩阵
  • 3.2 HarmonyOS NEXT跨设备任务调度与协同实战:算力分配、音视频协同与智能家居联动
  • Elasticsearch 海量数据写入与高效文本检索实践指南
  • jenkins集成gitlab发布到远程服务器
  • AI问答-vue3+ts+vite:http://www.abc.com:3022/m-abc-pc/#/snow 这样的项目 在服务器怎么部署
  • 当主观认知遇上机器逻辑:减少大模型工程化中的“主观性”模糊
  • 会计 - 金融负债和权益工具
  • .net Span类型和Memory类型
  • Dify工具插件开发和智能体开发全流程
  • ES6——对象扩展之Set对象
  • AI书签管理工具开发全记录(十三):TUI基本框架搭建
  • <2>-MySQL库的操作
  • Apache DolphinScheduler 和 Apache Airflow 对比
  • 初识结构体,整型提升及操作符的属性
  • 检测到 #include 错误。请更新 includePath。已为此翻译单元(D:\软件\vscode\test.c)禁用波形曲线