1、vim介绍
如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是vim并不像是在Windows上的vs集成软件把所有的东西都集成起来但是呢,如果不进行配置的话,vim和其他是相互独立的,vim就是写代码的编辑器,编译代码就是gcc/g++的编译器,调试代码就有gdb的调试器。自动化构建就有make和makefile构建的工具。
vim是款编辑器,同时也是多模式的编辑器—命令模式,底行模式,插入模式。
简单编译一个hello vim程序
vim刚开始打开的时候,暂时是无法正常输入的,因为刚打开的时候是命令模式,默认打开的时候,目前所输入的都会看成是命令,当然,如果命令不对当然什么操作都没有咯。
从命令模式进入插入模式输入 i。
如果编辑完了,想要退出去,该怎么办呢?首先需要从插入模式退出到命令模式,按一下Esc,现在在命令模式,此时想要退出的话,需要按:() ,从命令模式进入到底行模式之后,继续按wq就能够退出。如果是在底行模式不想退出的话,也能够通过按Esc重新命令模式。
概括介绍:
插入模式:编辑模式
命令模式:允许使用者通过命令,来进行文本的编辑控制。
底行模式:如果前两个模式是对于文本内容的控制,底行模式就是让vim进行包括但不限于和shell进行交互的。
2、命令模式详情
命令模式:没必要进入插入模式才能对文本进行操作。
代码语言:javascript
复制
yy:复制当前行
p:粘贴到当前光标的下一行
u:撤销
dd:剪切/删除
n dd:剪切/删除n行
n p:粘贴n行
n yy:复制n行
代码语言:javascript
复制
$:快速定位光标到当前行的最末尾
^:快速定位光标到当前行的最开头
gg:将光标定位到文本的最开头
G:将光标定位到文本的最末尾
n G:定位到指定的n行
代码语言:javascript
复制
h:光标向左一位
j:光标向下一位
k:光标向上一位
l:光标向右一位
n h:光标向左n位
n j:光标向下n位
n k:光标向下n位
n l:光标向右n位
快速记住hjkl方向键的意义。
h最左边,所以h表示向左。l在最右边,所以l表示向右。k(king高高在上),所以k表示向上。j(jump向下跳),所以j表示向下。
代码语言:javascript
复制
w:按照单词为单位,进行光标后移
b:按单词为单位,进行光标前移
代码语言:javascript
复制
ctrl r:撤销撤销的动作
shift~:shift按住不动,连续按~能让光标定位的字母快速进行大小写切换
x:删除光标所在位置的字符,先向后删,删完后向前删
n x:删除光标所在位置的n个
X:删除光标之前的字符
r:对光标指定的位置,进行一个字符的替换
n r:对光标指定的位置,进行n个字符的替换
R:进入replace模式,能够进行多次替换
代码语言:javascript
复制
i:直接进入插入模式
o:进入编辑模式的同时还新增一行
a:进入编辑模式,同时向后一位字符
3、底行模式详情
进入底行模式,是在命令模式情况下按:。
代码语言:javascript
复制
q!:强制退出。
q:退出,但是如果不保存的话,会警告没有保存。
wq:保存并退出
wq!:保存并强制退出
代码语言:javascript
复制
set nu:调出行号
set nonu:去掉行号
还可以进行批量化的替换
代码语言:javascript
复制
s/prinf/PRINTF/g:进行printf全部替换成PRINTF
/XXX:进行XXX的全文搜索,并且高亮
代码语言:javascript
复制
!command:不退出vim,可以进行shell命令的执行
(最常用的能够man指令,这样就不用退出后再去查看)
vim不会新建文件,只有当我们保存的时候,才会首次被创建。(vim 文件(新文件))。
在windows上的图形化界面,想要多文件同时编辑的话,只需要点击相对应的文件图形就能够切换,那么在Linux中怎么实现呢?难不成还是保存完之后再进行编辑另一个文件?
代码语言:javascript
复制
vs filename:分屏,多文件操作
ctrl ww:光标在两个编辑窗口切换
左右两个窗口可以互相拷贝粘贴。
底行模式不能直接进入插入模式,插入模式也不能直接进入底行模式。
命令模式时候怎么快速的退出?ZZ即可
4、困难问题
怎么注释?
换句话说困难的问题是,如何批量注释?
代码语言:javascript
复制
ctrl+v:先进入视图模式
//进入视图模式后选择需要批量化编辑的区域
I:大写的i进入编辑模式
编写完成之后按Esc两次,就能够进行多行的注释
怎么批量化去注释
代码语言:javascript
复制
ctrl+v:进入视图模式
//选择需要进行编辑的区域
d:删除/去注释
5、历史存疑问题
解决历史问题:普通用户无法进行sudo提权(其中Linux用户章节留下的问题)
如果没有提前解决白名单黑名单类似的问题的话,会出现这样的报错。
首先如果想要修改这个文件的话,必须要是root才能。利用root打开/etc/sudoers文件。进行修改。
找到这里并添加用户
可是此时也会出现报错,会有系统来提醒是否需要保存。这是就必须要用到**wq!**来强制保存并退出。
这样就成功了,能够实现sudo命令。
6、vim配置问题
6、1、配置的原理
vim不是简单的执行可执行程序,在启动执行的时候也会读取若干可执行的配置文件。通常来说没配置的话读取的都包含 .vimrc。
如果本身没有的话,可以创建一个.vimrc文件并在里面进行配置。这样的话也符合Linux多用户操作系统的作用,每一个人都可以个性化配置vim。可以但不限于set nu。
6、2、一键式配置
在网上寻找例如gitte或者github上的教程。