Linux中的编辑器vim

目录

[1. vim的基本概念](#1. vim的基本概念)

2.vim的基本操作

[3. vim正常模式命令集](#3. vim正常模式命令集)


1. vim的基本概念

vim的三种模式(其实有好多模式,掌握这3种即可进行基础学习),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

1.正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

2.插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式

3.末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,**shift+;**即可进入该模式。

若要查看你的所有模式:打开vim,底行模式直接输入:

help vim-modes

2.vim的基本操作

1.进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

指令:vim test.c

不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。

2.[正常模式]切换至[插入模式]

输入a,i,o都可进入

3.[插入模式]切换至[正常模式]

目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下**「ESC」键**转到[正常模式]再删除文字。当然,也可以直接删除。

4.[正常模式]切换至[末行模式]

shift + ;」, 其实就是输入「:」

5.退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:

  1. w (保存当前文件)

  2. wq (输入「wq」,存盘并退出vim)

  3. q! (输入q!,不存盘强制退出vim)

3. vim正常模式命令集

插入模式:

1.按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;

2.按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

3.按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

命令模式(英文模式下输入指令)(常用指令):

n+yy:复制当前行 n:复制连续的n行

n+p:粘贴到当前光标的下一行 n:把指定内容粘贴n次

u:撤销 Ctrl+r:对历史的撤销,进行撤销

n+dd:剪切指定n行

shift+4(即$):将光标移动到当前行的结尾

shift+6(即^):将光标移动到当前行的开始

gg:将光标定位到整个文本的开头

shift+g(即G):将光标定位到整个文本的最后一行

n+shift+g:将光标定位到整个文本的第n行

h、j、k、l :左下上右

w:按照单词为单位进行光标后移

b:按照单词为单位进行光标前移

shift+`(即~):大小写快速切换

n+x:删除光标后续的一个字符,可以一次删除n个---一行内

n+shift+x:删除光标之前的一个字符,可以一次删除n个---一行内

n+r:对光标指定的位置,进行一个字符的替换

shift+r:进入替换模式,直接进行文本替换

shift+zz:保存并退出

底行模式:

w:保存

q:退出

wq:保存并退出

q!:强制退出

set nu、set nonu:打开行号,去掉行号

/关键字:到文本中做搜索

!command:不退出vim,可进行shell命令的执行,常用函数查看

vs filename 分屏,多文件操作。如:

其他:

批量化注释和去注释:

注释:先ctrl+v,hjkl去进行区域选择,shift+i,然后//,最后双击Esc键

去注释:先ctrl+v,hjkl去进行区域选择,包含且仅包含//,d。

相关推荐
心灵彼岸-诗和远方1 小时前
DevOps工程技术价值流:Ansible自动化与Semaphore集成
linux·运维·网络·软件工程·devops
m0_748251521 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
爱写代码的小白.1 小时前
RustDesk内置ID服务器,Key教程
linux·运维·服务器
朝九晚五ฺ2 小时前
【Linux探索学习】第二十四弹——软硬链接:Linux 中的软链接与硬链接详解
linux·运维·chrome·学习
Hacker_Nightrain3 小时前
linux 网络安全不完全笔记
linux·笔记·web安全
一入程序无退路3 小时前
c语言传参数路径太长,导致无法获取参数
linux·c语言·数据库
打鱼又晒网3 小时前
Linux网络 | 网络计算器客户端实现与Json的安装以及使用
linux·c++·网络协议·计算机网络
朝九晚五ฺ3 小时前
【Linux探索学习】第二十三弹——理解文件系统:认识硬件、探索文件在硬件上的存储问题
linux·运维·学习
嘤嘤怪呆呆狗3 小时前
【插件】vscode Todo Tree 简介和使用方法
前端·ide·vue.js·vscode·编辑器
-指短琴长-3 小时前
Linux从0到1——线程同步和互斥【互斥量/条件变量/信号量/PC模型】
linux·运维·服务器