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

相关推荐
Peter44715 分钟前
Linux上安装配置单节点zookeeper
linux·zookeeper·单节点
helloasimo16 分钟前
Rocky Linux下安装meld
linux·运维·centos·rocky
vvw&1 小时前
如何在 Ubuntu 22.04 上优化 Apache 以应对高流量网站教程
linux·运维·服务器·前端·后端·ubuntu·apache
0110编程之路1 小时前
Ubuntu 搭建SVN服务
linux·ubuntu·svn
扶桃笙3 小时前
vim/vi编辑器
linux·编辑器·vim
老家大门口的的猴子6 小时前
Ramfs, rootfs 和 initramfs
linux·服务器·开发语言·驱动开发·信息与通信
计算机学长大白7 小时前
C中如何处理文件操作中的常见问题?
linux·c语言
dangdanding7 小时前
udp分片报文发送和接收
linux·网络·python·网络协议·udp
我爱学习_zwj9 小时前
什么是模块?在Node.js中,每一个文件都被视为一个模块来处理
linux·编辑器·vim