作者:一个喜欢猫咪的的程序员
专栏:《Linux》
喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》
目录
3.7光标跳转到最末尾/跳转到第n行/以单词为单位向前/向后跳转
1.什么是vim
1.1什么是vim
Vim 采用模式编辑的理念,即它提供了多种模式,按键在不同的模式下作用不同。 你可以在普通模式 下浏览文件,在插入模式下插入文本, 在可视模式下选择行,在命令模式下执行命令等等。起初这听起来可能很复杂, 但是这有一个很大的优点:不需要通过同时按住多个键来完成操作, 大多数时候你只需要依次按下这些按键即可。越常用的操作,所需要的按键数量越少。
和模式编辑紧密相连的概念是 操作符 和 动作。操作符 指的是开始某个行为, 例如:修改、删除或者选择文本,之后你要用一个 动作 来指定需要操作的文本区域。 比如,要改变括号内的文本,需要执行 ci(
(读做 change inner parentheses
); 删除整个段落的内容,需要执行 dap
(读做:delete around paragraph
)。
如果你能看见 Vim 老司机操作,你会发现他们使用 Vim 脚本语言就如同钢琴师弹钢琴一样。复杂的操作只需要几个按键就能完成。他们甚至不用刻意去想,因为这已经成为肌肉记忆了。这减少认识负荷并帮助人们专注于实际任务。
1.2vim和vi的区别:
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。我们课堂上,统一按照vim来进行讲解。
2.vim基础
2.1vim是否安装
vim就是一个单纯的编辑器,不是一个集成开发环境
一般云服务器都是装了vim的,因此输入vim可以检查是否安装
- 已安装:
- 未安装:
未安装的话,可以这样安装
2.2vim的模式
vim有很多种模式,本篇博客以3种最常用的模式进行介绍。
- 命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
- 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
- 底行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
vim一共有12种模式。
2.3上下左右移动
hjkl上下左右移动
h为左,j为下,k为上,l为右
2.4缓冲区,窗口,标签
Vim 是一个文本编辑器。每次文本都是作为缓冲区的一部分显示的。每一份文件都是在他们自己独有的缓冲区打开的,插件显示的内容也在它们自己的缓冲区中。缓冲区有很多属性,比如这个缓冲区的内容是否可以修改,或者这个缓冲区是否和文件相关联,是否需要同步保存到磁盘上。
窗口 是缓冲区上一层的视窗。如果你想同时查看几个文件或者查看同一文件的不同位置,那样你会需要窗口。
请别把他们叫做 分屏 。你可以把一个窗口分割成两个,但是这并没有让这两个窗口完全 分离 。
窗口可以水平或者竖直分割并且现有窗口的高度和宽度都是可以被调节设置的,因此,如果你需要多种窗口布局,请考虑使用标签。
标签页 (标签)是窗口的集合。因此当你想使用多种窗口布局时候请使用标签。
简单的说,如果你启动 Vim 的时候没有附带任何参数,你会得到一个包含着一个呈现一个缓冲区的窗口的标签。
顺带提一下,缓冲区列表是全局可见的,你可以在任何标签中访问任何一个缓冲区。
3.vim基础操作
3.1如何进入vim
vim 文件名
如果有这个文件,它就会直接进去,如果没有这个文件,它会创建一个文件然后进入这个文件
3.2模式切换
进入vim后,默认是命令模式,命令模式下不能进行编写
切换到插入模式:命令模式下按i
切换到底行模式:命令模式下按shift+:
切换到命令模式:任何模式下按ESC
切换到替换模式:1.shift r
2.按a(光标会向后退一格)/按o
在插入模式下写了一些东西后,想保存退出如何保存退出呢?
切为底行模式按wq(w为保存,q为退出)
3.3查看vim的内容(cat)
cat 文件名
3.4调出和去掉行号(set nu/set nonu)
底行模式下,调出和去掉行号,set nu/set nonu
3.5复制截切粘贴
- 复制:
要复制哪一行,让光标停在哪一行按yy
也可以nyy,复制n行
- 剪切:
dd /ndd截切一行或者n行
- 粘贴:
粘贴的话在某行按p,就会在这一行的下面一行进行粘贴
也可以按np,粘贴n行
3.6 撤销
按u可以撤销
对撤销命令进行撤销
Ctrl+r
3.7光标跳转到最末尾/跳转到第n行/以单词为单位向前/向后跳转
按gg可以到文档的最开始
按 n shift g到第n行
nw,n b:按照单词为单位,进行前后移动,w向后,b向前
3.8光标跳转到当前行的最末尾/最开始
按shift+4($)可以到当前行的最末尾
按shift+6(^)可以到当前行的最开始
3.9切换大小写/替换字符/删除字符
按住shift+~,按一下切换一个大小写,一直按住一直切换
按r +字符,将限制光标所在的位置替换为字符
全部替换:%s/被替换的字符/替换后的字符/g
按x,删除一个,一直按住一直删
按nx删去后n个字符
按n shift x删除前面n个字符
3.10创建关联的头文件(vs)/删除窗口
创建关联的头文件 :vs 文件名
在vim下,光标在哪一行就可以在编写哪一行
- 当有两个窗口时,如何切换窗口编写呢
按Ctrl+ww
如果窗口太多,要退出的话就切为底行模式
:q!(不保存这个光标当前页面)
注意事项:
- 1.如果你不知道你自己在什么模式下,无脑esc
- 2.退出的时候,一般都是先保存,在退出
- 3. vim中操作,不要用鼠标和鼠标的滑轮
4.vim配置
a.自己配置(不推荐)
vim在启动的时候,会自动在当前用户的目录下,寻址配置文件,如果没有,就是
默认。/home/vimtest
一个用户,一个vim配置,我们所做的配置,不会影响其他人
b.自动化配置
目前只支持centos 7.X