Linux入门之vim

Linux入门之vim

文章目录

  • Linux入门之vim
    • [1. Linux编辑器--vim](#1. Linux编辑器--vim)
    • [2. vim模式](#2. vim模式)
    • [3. 命令模式下的命令](#3. 命令模式下的命令)
    • [3. 低行模式下的命令](#3. 低行模式下的命令)
    • [4. 模式切换](#4. 模式切换)
    • [6. vim的配置](#6. vim的配置)

1. Linux编辑器--vim

vim是Linux中的一个多模式的文本编辑器,visual studio是一种集成的开发环境,包括代码编写,编译,调试等功能,而vim则只有代码编写的功能,vim相较于visual studio,vim更轻量,配置好系统之后就自带,且vim几乎可以在任何系统使用

2. vim模式

vim是种多模式编辑器,我们只需要知道三种基本模式就可以了,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

  • 正常/普通/命令模式(command mode)
      控制光标的移动,字符的删除,移动复制区段
  • 插入模式(Insert mode)
      文字的输入,按ESC回到命令模式,最频繁使用的编辑模式
  • 末行模式(last line mode)
      文件的保存或退出,也可以进行文本的替换,查找字符串,列出行号,命令模式下,按shift + :进入该模式

TIPS:如果不知道当前处于什么模式,按ESC,即可回到命令模式

3. 命令模式下的命令

光标所在行

  1. 复制:yy (复制光标所在行)
  2. 粘贴:p
  3. 剪切:dd + p
  4. 撤销:u (ctrl + r)即可对u的操作进行撤销

TIPS:大部分的命令都可以使用 n + 命令,进行多行的操作

例如:
n + yy即可对光标行开始的n行进行复制
n + p即可粘贴n行

光标的快速定位

  1. 回到文本末尾:shift + g(G) shift + g = G,G为实际输入的指令
  2. 回到文本开头:gg
  3. 定位到第n行:n + gg
  4. 光标的局部定位 ← ↓ ↑ → h(左移一个字符) j (下移一个字符) k (上移一个字符) l (下移一个字符)(由于老实键盘上没有← ↓ ↑ →,所以采用h j k l,对光标进行局部定位)
  5. 定位到行末:shift + 4($)
  6. 定位到行首:shift + 6(^)
  7. 向后跳转一个单词:w
  8. 向前跳转一个单词:b (对单词的定义,为中间没有字符隔开的就算一个单词,例如:helloworld,这算一个单词)

其他指令

  1. 保存并退出:shift + zz(ZZ)
  2. 向后删除n个字符:n + x
  3. 向前删除n个字符:n + shift + x(X)(向前删除的时候,不会删除光标指向的字符,而是删除光标的前一个字符,向后删除则会删除光标指向的字符)
  4. 字符大小写切换:shift + ·(~)
  5. 单个字符的替换:r
  6. 多文本编辑:vs xxx.c
  7. 多文本窗口切换:ctrl + ww (切换窗口存在多种方式,记住这种即可)

3. 低行模式下的命令

  1. 设置行号:set nu 取消行号:set nonu
  2. 字符搜索:/string
  3. 保存退出:wq! w:保存,q :退出,!:强制(有时候需要加!才能将文件保存 )

4. 模式切换

  • 通过视图模式对代码进行注释步骤
      1. 从命令模式切换为视图模式(ctrl + v )
      2. 选中需要注释的代码前的空白列(h j k l )
      3. 切换成输入模式输入//(shift + i (I))
      4. 退出视图模式(按两次ESC)
    即可看到被选中的列都出现了//,对代码进行范围注释

6. vim的配置

在每个人的家目录下都有一个.vimrc的隐藏文件,存放的是vim的配置,可以对其进行修改

常用的修改

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

C++开发的同学,在Gitee上有一个大佬的项目,封装了一键式的vim环境配置vim配置的项目链接

目前只支持:Centos7 x86_64

相关推荐
意疏1 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
BLEACH-heiqiyihu1 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
我的K84092 小时前
Flink整合Hudi及使用
linux·服务器·flink
1900433 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo3 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器
Linux运维日记3 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
我是唐青枫3 小时前
Linux dnf 包管理工具使用教程
linux·运维·服务器
编程修仙4 小时前
Collections工具类
linux·windows·python
芝麻团坚果4 小时前
对subprocess启动的子进程使用VSCode python debugger
linux·ide·python·subprocess·vscode debugger
写点什么啦4 小时前
[debug]不同的window连接ubuntu的vscode后无法正常加载kernel
linux·vscode·ubuntu·debug