Linux中vim编辑器基本操作

本文详细介绍了Vim编辑器中的指令模式、底行模式和插入模式,以及各自的操作指令,包括光标移动、复制粘贴、撤销操作等,并提到了与gcc和g++编译器的关联。作者强调了在不同模式下的高效操作和避免Windows快捷键的使用。
摘要由CSDN通过智能技术生成

一、vim编辑器里面的三个模式

使用vim进入编辑文件(如txt、.c)内容会有三大模式,分别是:指令模式、底行模式和插入模式
底行模式和插入模式需要从指令模式进入,而进入文件一开始就是指令模式
需要根据指令才能进入底行模式或插入模式
在这里插入图片描述

1.身处指令模式下:

可以使用 Shift键 加 ;(冒号)键 进入底行模式
而直接 i键 就会进入插入模式,也就是编辑模式
别点加号,就点shift中同时点 ;冒号键,以下的内容都是,加号说互相配合

2.身处底行模式或插入模式下:

不建议使用什么指令快捷键来实现两者之间跳转,因为指令多不好记
底行模式按Esc键可以退到指令模式,插入模式下也是Esc键退到指令模式
底行模式中可以在底下使用指令,保存退出或使用外部指令
插入模式中很多Windows下习惯的快捷键都无法使用,通常知识用来编辑而已

3.窗口提示

在这里插入图片描述
以上图片对比中,可以看最底下的一行对比:

指令模式下什么都没提示,并且光标在原地
底行模式下,可以看到光标已经到了下标,可以输入指令
插入模式下,底行有INSERT提示,并且可以在光标所在位置插入字符

如果不知道不在什么模式下,无脑Esc退到指令模式再重新操作
非常不建议习惯性使用Windows下的快捷键,比如Ctrl + cvz的一些操作

三个模式搭配使用可以提高编辑效率,Linux如果不是图形化界面,鼠标通常只能用来复制粘贴
要习惯没有鼠标的操作,使用指令来调用一些工具

二、vim指令模式和底行模式下的各指令

无脑Esc退到指令模式
如果想看行号,先Shift+;进入底行输入set nu回车再尝试以下指令

1.指令模式常用指令

注意:指令模式下通常是看不到自己所输入的指令,并且所有指令建议都是小写状态下的
指令模式各指令列表:

光标移动:k上,j下,h左,l右或小键盘方向箭头键
复制:n + yy
粘贴:n + p
剪切(删除):n + dd
撤销:u
反撤销:Ctrl + r
按单词光标前后移动:b前,w后
一行内光标最前最后位置:最前Shift + 6,最后Shift + 4
光标定位第几行:n + gg(默认第一行)或n + Shift + g(默认最后一行)
光标当前位置英文变大写:Shift + `(Tab上一个键)
删除光标当前向后n字符:n + x(包含光标位置字符)
删除光标当前前n字符:n +Shift + x(不包含光标位置字符)
替换光标当前向后n字符为新字符:n + r + 新字符(替换成单一新字符)
进入替换模式:Shift + r (如同Windows下的Insert插入模式,向后覆盖)
保存并退出:Shift + zz(不建议使用,推荐记忆底行模式下的保存与退出)
批量注释:Ctrl + v,hjkl选择区域,Shift + i,输入双斜杠//,Esc退出(选择区域可以用光标定位第几行指令)
撤销批量注释:Ctrl + v,hjkl选择区域,d退出(选择区域必须要把需要删的全包含,可以使用光标定位第几行指令)

1)光标上下左右移动

结构是:k上,j下,h左,l右(L小写)
记忆方法:king高高在上,jump往下跳,h在四个键位最左边,l在四个键位最右边
可以使用hjkl上下左右移动,也可以用小键盘那边的方向箭头键

2)复制指令yy

结构是:n + yy (n是整数,代表要复制几行)
当没有n时默认复制光标位置的一行,有整数n时代表复制光标当前位置向下n行

3)粘贴指令p

结构是:n + p (n是整数,代表要粘贴几份)
当没有n时默认粘贴一份,份的概念是刚才复制的不管几行都只算一份
并且都是在光标当前行的下一行粘贴,哪怕当前行是空行也是在下一行粘贴

4)剪切指令(删除指令)dd

结构是:n + dd (n是整数,代表要剪切几行)
当没有n时默认剪切光标位置的一行,有整数n时代表剪切光标当前位置向下n行
如果不使用粘贴时,可以当成删除指令来使用

5)撤销指令u

结构是:u
撤销上一步操作,例如指令的粘贴删除,还有上一次插入模式下所编辑的

6)反撤销指令Ctrl + r

结构是:Ctrl + r
反撤销操作,把上一次不小心撤销的东西撤销回来,也叫“重做”

7)按照单词光标前后移动指令b和w

结构是:b(根据完整单词或字符向前移动)
结构是:w(根据完整单词或字符向后移动)

如果是整个单词可以直接跳过,如果是单字符或符号就一步一步走,空格自动跳过,自动换行

8)一行内光标定位最前最后操作指令shift+6和shift+4

结构是:Shift + 6 (^符号,定位到这行的第一个字符位置)
结构是:Shift + 4 ($符号,定位到这行的最后一个字符位置)

定位到整行内最后一个字符空格也算,但定位到整行最开始一个字符空格不算

9)定位到文档的第几行指令n + gg或n + Shift + g

结构是:n + gg (定位到第n行,没有n时默认第一行)
结构是:n + Shift + g (n + 大写G,定位到第n行,没有n时默认最后一行)

两个没有n时默认第一行和最后一行,有行号时哪一个都一样

10)光标当前位置英文变大写指令Shift + `

结构是:Shift + ` (Tab上一个键也就是~号,把光标当前位置英文替换成大写,替换后光标向后移动)
只能在一行内英文替换大写,如果需要换另外一行,需要自己移动光标换行

11)删除光标当前位置向后n字符指令n + x

结构是:n + x (删除光标当前位置且向后n个字符,光标移动到下一个字符,不会换行)
没有n时默认删除一个,n代表向后删除几个字符,删除完后面的光标不会向前移动,也不会换行

12)删除光标当前位置前n字符指令n + Shift + x

结构是:n + x (删除光标当前位置前n个字符,不会删除光标当前位置字符,光标不会移动到别的字符,不会换行)
11和12只会删除当前行的字符,不会换行,删除光标前n个字符,光标不会移动到别的字符

13)替换光标当前位置字符指令n + r + 新字符

结构是:n + r + 新字符(从光标开始替换后面字符,同一替换成单一的新的字符)
没有n时默认替换一个,n代表向后替换几个字符
输入完指令后输入要替换成的新字符,完成替换后光标移动到最后替换的字符

14)进入替换模式指令Shift + r

结构是:Shift + r(大写R,替换光标当前位置的字符,替换后光标后移一位,Esc退出)
替换模式算是一个模式,如同Windows下的Insert键,向后覆盖字符,Esc退出替换模式

15)保存退出指令Shift + zz

结构是:Shift + zz(大写ZZ,保存并退出)
不建议使用这个指令,如果不小心记成Ctrl + z就会退出文档,但vim还在运行,之后每次进入都有烦人的提示
如出现这种烦人提示,就删除当前目录下的隐藏文件“文件名.后缀.swp文件”
在这里插入图片描述

16)批量注释指令

结构是:Ctrl + v 选择进入,hjkl选择区域,Shift + i ,输入//,Esc退出(这个过程不能乱)
Ctrl + v进入选择,使用hjkl上下左右移动选择区域,然后Shift + i(大写I),再输入双斜杠//,然后点Esc完成多行注释
注意:选择区域可以使用行定位指令n + gg或n + Shift + g
其实这个方法可以进行每行第一个位置或任意位置插入同一字符

17)删除批量注释指令

结构是:Ctrl + v 选择进入,hjkl选择区域,然后 d 退出(选择的区域必须包含完两列斜杆,这个过程不能乱)
Ctrl + v进入选择,使用hjkl上下左右移动选择区域,选择的区域包含完斜杆,d 退出
注意:选择区域可以使用行定位指令n + gg或n + Shift + g
这个方法可以删除光标包含的字符

2.底行模式指令

Shift + ; 进入底行模式
底行模式下各指令:

保存:w
退出:q
强制退出:q!
显示行号:set nu
多文件开多窗口:vs filename(!vs 文件名)
使用文件外的指令:!command(!指令)(不会用)

1)保存退出指令wq

结构是:wq 回车
保存和退出可以一起使用,只能wq,不能qw

2)强制退出指令q!

结构是:q! 回车
应对一些特殊情况,您可以尝试先无脑按Esc,再进入底行模式,再使用q!强制退出
强制退出也可以和w保存配合使用,wq!保存并强制退出,不能颠倒

3)显示行号指令set nu

结构是:set nu 回车
是否使用行号看个人习惯,使用行号在使用指令模式下的光标定位第几行有便捷

4)多文件开多窗口指令vs filename

结构是:vs filename 回车(vs 文件名 回车)
如果文件不存在,可以提前打开,如果不保存就不存在
在这里插入图片描述

三、拓展:编译器gcc和g++

1.gcc和g++编译器的下载

可以在网搜“Linux yum下载安装gcc和g++”,给出答案的博客一大堆
以后有什么没有的插件可以搜索

查看自己有没有gcc编译器:gcc --version
下载gcc和g++编译器:yum install -y gcc-c++

下载安装通常是在root账号下下载的
普通账号有提权的话就sudo yum install -y gcc-c++

2.编译.c或.cpp(.cc)文件指令

g++编译器可以编译c源程序文件,.cpp和.cc文件是c++源程序文件
gcc编译成可执行程序指令:

gcc -o 目标文件 源文件 [使用标准]
例如:gcc -o mytest.exe test.c -std=c99(使用c99标准)

g++编译成可执行程序指令:

g++ -o 目标文件 源文件 [使用标准]
例如:gcc -o mytest.exe test.c -std=c++11(使用c++11标准)

中间可以拆分成预处理、编译、汇编、链接,链接完之后就是可执行程序文件了
根据选项可以选择到哪里停下来,但如果不深究,没必要生成这些文件
如果您的gcc和g++编译器是最新的,可以不加使用标准选项

总结

多操作vim的指令模式可以提高效率,虽然没有了鼠标会慢一点
编辑模式下的没什么好讲的,在编辑模式下不要习惯用Windows的CV复制粘贴,不管用的
在这里插入图片描述

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值