Linux中,vim编辑器的使用,以及vim的配置。
文章目录
一、Linux 编辑器vim
(1)vi/vim简单介绍
- vi和vim一样,都是Linux下的文本编辑器,相当于Windows下的记事本。
- vim 相当于是vi的剩级版本,兼容vi的所有指令。
二、vim的三种模式
(1)正常/普通/命令行模式(Normal mode)
-
vim test.c
使用vim打开一个文件,默认进入的就是命令行模式。此时的vim是不能进行写入操作的。
-
该模式下,可以控制光标的移动,字符或行的删除,移动复制粘贴某段区域,进入插入模式,进入底行模式。
(2)插入模式(insert mode)
- 在命令模式下输入 “i” 进入插入模式, 此时的vim就跟记事本一样,可以写入字符。
- 输入Esc键可以退回到命令行模式。
(3)底行模式(last line mode)
- 在命令模式下,按住 ”shift+;(分号)“ 即输入 “:(冒号)”,进入底行模式。
- 在底行模式下,可以进行文件的保存和退出,查找文件中的字符串,列出行号等操作。
- 输入**“wq“**,即可保存并退出。
(4)三种模式之间的转换
-
命令行模式是vim的核心模式,所以我们使用Esc键比较频繁。
-
在底行模式下,输入:help vim-modes 即可查看vim的所有模式。
三、vim的基本使用操作
(1)命令模式
-
在命令模式下不能进行文本的输入,必须进入到插入模式才可以。
按下 “i”,进入插入模式,进入插入模式后是从光标当前位置开始输入文件;
按下 “a” ,进入插入模式后,是从当前光标所在位置的下一个位置开始输入文字;
按下 ”o“, 进入插入模式后,是插入新的一行, 从行首开始输入文字。
-
从插入模式回退到命令模式, 按下**”Esc“**键。
-
移动光标
- “h, j, k, l” 四个键,分别代表光标的左,下,上,右的移动;
- 按**“n + [h, j, k, l]”** 四个键,让光标左,下,上,右移动n个字符。
- 按 “gg”, 将光标定位到文件的起始位置;
- 按 “shift + g (即G)”, 将光标定位到文件的末尾;
- 按 “n+shift + g”, 将光标定位到文件的第n行。
- 按 “shift + 6 (即^)”, 将光标定位到本行的行首;
- 按 “shift + 4 (即$)”, 将光标定位到本行的行尾;
- 按 “n+l (小写字母L)”, 从当前位置将光标向后移动n个字符。
- 按 “w”, 以单词为单位,光标跳到下一个字的开头;
- 按 “e”, 以单词为单位,光标跳到下一个字的结尾;
- 按 “b”, 以单词为单位,光标回跳到上一个字的开头。
- 按 “ctrl + b”, 屏幕往后移动一页;
- 按 “ctrl + f”, 屏幕往前移动一页。
- 按 “ctrl + u”, 屏幕往后移动半页;
- 按 “ctrl + d”, 屏幕往前移动半页。
-
删除文字
- 按 “x”, 剪切/删除光标当前位置的一个字符;
- 按 “n+x”, 剪切/删除光标当前位置后面(包含自己)的n个字符。
- 按 “shift + x (即X)”, 剪切/删除光标当前位置的前面一个字符;
- 按 “n+shift + x”, 剪切/删除光标当前位置前面的n个字符。
- 按 “dd”, 剪切/删除“ 光标所在的当前行;
- 按 “n+dd”, 从光标所在行开始剪切/删除“ n行。
-
复制
- 按 “yw”, 将光标所在之处到字尾的字符复制到缓冲区中;
- 按 “n+yw”, 复制n个字到缓冲区。
- 按 “yy”, 复制光标所在行到缓冲区;
- 按 “n+yy”, 从光标所在行开始,复制n行到缓冲区。
- 按 “p”, 将缓冲区的内容粘贴到光标所在行。
- 按”n+p“, 将缓冲区的内容粘贴n次。
-
替换
- 按 “r”, 替换光标当前位置的字符;
- 按 “n+r”, 替换光标当前位置后面(包含自己)的n个字符,一次性替换n个字符;
- 按 “shift + r (即R)”, 替换光标所到之处的字符,知道按下Esc键。
- 按**“shift + `”**, 字母的大小写转换。
-
撤销
- 按 ”u“, 撤销;
- 按 ”n+u“, 撤回到上n步。
- 按 ”ctrl + r“, 对撤销的恢复。
-
保存并退出
- 按 ”shift + zz (即ZZ)“, 保存并退出。
(2)插入模式
- 记住 i, a, o ,从命令模式进入插入模式的三种方式。
- 插入模式和记事本一样。
(3)底行模式
-
输入w, 保存
-
输入q, 不保存退出
-
输入wq,保存并退出
-
!强制
-
输入 wq! 强制保存并退出
-
输入 set nu , set nonu, 设置/取消行号;
-
输入 ”n“ 再回车,就会跳转到文件的第n行。
-
/关键词, 搜索文件中的关键词
-
!command: 不退出vim,可以进行shell命令的执行,常用函数的查看。
-
vs filename: 分屏,多文件操作。
-
ctrl+ww: 分屏后的界面切换。
(4)批量化注释和去注释
- 注释:底行模式下,ctrl+v; [h, j, k, l]选择注释的区域; shift+i; 输入//; esc*2。
- 去注释:底行模式下,ctrl+v; [h, j, k, l]选择去注释的区域(仅包含//),最后再d。
四、普通用户无法进行sudo提权的问题
-
在配置文件**“/etc/sudoers”**里添加普通用户, 大概在第100行位置,如下所示:
root ALL=(ALL) ALL
-
在该行下面一行,复制当前行内容,将root 改成普通用户的用户名,保存并退出。无法退出就输入:wq! 进行强制退出。
五、配置vim
(1)手动配置
-
**原理:**vim不是简单的执行可执行程序,他会读取若干个配置文件,例如:.vimrc文件。
-
配置文件所在位置:
- 在目录/etc/下面, 有一个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
- 在每个用户的主目录下,都可以自己建立一个私有的配置文件,命名为 ”.vimrc“。 只对该用户有效。例如:在/root目录下,通常已经存在一个.vimrc文件,如果不存在则创建之。
-
在自己主目录下,使用 vim 打开 .vimrc文件
vim .vimrc
直接在文件中输入下面指令进行简单配置:(根据自己喜好配置)
注意:配置文件中注释是以(”)双引号开
set nu "显示行号 syntax on " 设置语法高亮 set nu " 设置行数显示 set tabstop=4 " 设置tab缩进长度为4空格 set autoindent " 设置自动缩进,适用所有类型文件 set cindent " 针对C语言的自动缩进功能,在C语言的编程环境中,比autoindent更加精准 set list lcs=tab:\|\ " 设置tab提示符号为 "|",注意最后一个反斜杠后面要留有空格 set cc=0 " 设置高亮的列,这里设置为0,代表关闭 set cursorline " 突出显示当前行 set ai "自动缩进,与上一行保持一致的自动空格 set ic "在查询模型与匹配模式下忽略大小写 set showmatch "显示括号配对,并高亮显示相匹配的括号 set showmode "文本输入模型下,加亮显示模式指示器 set showcmd "在状态栏显示所执行的指令,未完成的指令片段 set warn "长行显示自动折行 set cindent "以C/C++模式缩进 set ruler "打开状态栏标尺 set scrolloff=6 "设置光标离窗口上下6行时窗口自动滚动 set wrap "自动换行显示
(2)自动配置
- 在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
-
按照提示输入 root 密码. 您的 root 密码不会被上传, 请放心输入。
-
耐心等待配置完成。
-
安装之后想要卸载, 输入下面指令:
bash ~/.VimForCpp/uninstall.sh
End:
- 下面一节介绍Linux编译器-gcc/g++的使用。