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

相关推荐
天朝八阿哥15 分钟前
关于xfce4-pulseaudio-plugin中文翻译的bug
linux·debian
z2023050829 分钟前
linux之 remoteproc 内核实现源码分析
linux·运维·服务器
阿方索41 分钟前
shell脚本
linux·运维
努力努力再努力wz1 小时前
【C++进阶系列】:万字详解智能指针(附模拟实现的源码)
java·linux·c语言·开发语言·数据结构·c++·python
QMCY_jason1 小时前
ubuntu 24.04 FFmpeg编译 带Nvidia 加速记录
linux·ubuntu·ffmpeg
matlab的学徒1 小时前
Kubernetes(K8S)全面解析:核心概念、架构与实践指南
linux·容器·架构·kubernetes
Fcy6482 小时前
初识Linux和Linux基础指令详细解析及shell的运行原理
linux·服务器·ubuntu·centos
gb42152872 小时前
linux系统中如何在root用户中将某个文件夹目录的权限赋值给其它用户(主要说的是 方法 1)
linux
qq_339554822 小时前
linux串口驱动学习
linux
拾光Ծ3 小时前
【Linux】入门指南:基础指令详解Part Two
linux·运维·服务器