文章目录
- 一、vim编辑器里面的三个模式
- 二、vim指令模式和底行模式下的各指令
- 1.指令模式常用指令
- 1)光标上下左右移动
- 2)复制指令yy
- 3)粘贴指令p
- 4)剪切指令(删除指令)dd
- 5)撤销指令u
- 6)反撤销指令Ctrl + r
- 7)按照单词光标前后移动指令b和w
- 8)一行内光标定位最前最后操作指令shift+6和shift+4
- 9)定位到文档的第几行指令n + gg或n + Shift + g
- 10)光标当前位置英文变大写指令Shift + `
- 11)删除光标当前位置向后n字符指令n + x
- 12)删除光标当前位置前n字符指令n + Shift + x
- 13)替换光标当前位置字符指令n + r + 新字符
- 14)进入替换模式指令Shift + r
- 15)保存退出指令Shift + zz
- 16)批量注释指令
- 17)删除批量注释指令
- 2.底行模式指令
- 三、拓展:编译器gcc和g++
- 总结
一、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复制粘贴,不管用的