Linux学习之路 -- 工具篇 vim

Vim(Vi Improved)是一款功能强大的文本编辑器,在Linux系统中广泛使用。它是 Vi 文本编辑器的改进版本,我们可以通过vim来正式地编辑一个文件,下面我将介绍vim的相关操作。

vim + 文件名 就可以进入文件

目录

一、vim的主要三个模式

[<1> 模式的转换](#<1> 模式的转换)

<2>具体命令

<3>插入模式

<4>其他模式

[<5>visual block模式](#<5>visual block模式)

[二、vim 的配置问题](#二、vim 的配置问题)


一、vim的主要三个模式

<1> 模式的转换

vim 这个编辑器有许多的模式,但是比较重要的就是命令模式,底行模式,插入模式。 我们刚进入vim 这个编辑器时,所处的模式就是命令模式,此时我们敲击键盘上的任何字符都会被认为是命令。但是我们需要的是编辑文件,所以我们必需转换到插入模式,具体操作就是按 o 、i、a中任意一个键就可以进入插入模式,进入后我们会看到底下会有标识。

如果我们想退出插入模式,并回到命令模式,我们可以按左上角的 esc 键。那命令模式该如何转换成底行模式呢? 按shift 键 + ;键即可。此时我们就进入了底行模式,如果我们想回退到命令模式,直接按esc 即可。但是插入模式和底行模式是不能相互转换的。

退出vim 时,要先转成底行模式,再按W + Q键,如果vim 异常退出,比如直接关闭linux 系统,或其他一些不规范的操作,会导致下一次编辑文件时无法进入(如下图)

因为vim的异常退出,导致了形成了一个".lesson7 .swp" 的隐藏文件保存了之前的数据(参见上图的第二行:"Found a swap .....".lesson7.swap""),这里我们呢只需要在命令行输入shift + R键, 如果没有作用,那也可以尝试shift + D键,删除这个文件,如果还是没用,我们可以直接实现ls -al 命令,然后在当前目录文件下查找该隐藏,直接删除。不过要注意的是,原来文件里的数据可能会丢失一部分,所以我们还是要按正常的操作进行退出。

<2>具体命令

1.插入模式:由于插入模式就相当于编译器写代码一样,区别就是没有鼠标,所以插入模式就不具体介绍了。

2.命令模式

下面介绍命令模式的一些具体的命令

|-------------------|---------------------------|
| shift + $ | 将光标定位到当前行的最右侧 |
| shift + ^ | 将光标定位到当前行的最左侧 |
| shift + g | 将光标定位到最后的一行 |
| gg | 将光标定位到最开始的一行 |
| n+ shift + g | 将光标定位到第n行 |
| h | 向左移光标 |
| l | 向右移光标 |
| j | 向下移光标 |
| k | 向上移光标 |
| n + yy | 复制当前行/n行 |
| n + p | 在下一行粘贴一次或n次 |
| u | 撤销编辑操作(undo) |
| ctrl + r | 对撤销进行撤销 |
| n + dd | 删除当前 n 行 / 剪切当前的n行(配合p使用) |
| shift + ~ | 从当前行的开头位置开始按住,表示大小写的快速切换 |
| n + r | 替换当前光标的字符 |
| shift + r | 替换模式(将原有的内容进行替换) |
| esc | 可以将任何模式回退到命令模式 |
| n + x | 从当前光标开始,向后删除n个字符 |
| n+ shift + x | 从当前光标开始,向前删除n个字符 |
| w | 以一个单词为单位,向后移动 |
| b | 以一个单词为单位,向前移动 |
| shift + # , r然后按n | 快速查找函数 |
| | |
| | |

因为在vim诞生的时候,鼠标并没有广泛使用,所以才会有上下左右的光标移动键,老式键盘里hjkl就是表示上下左右,现在才演化出来方向键。注意撤销在退出vim后,再次登录就没用了。光标的起始位置是在上一次退出时光标的位置,如果要修改进入时光标所在的位置,在文件名后跟 + n(行号)

<3>插入模式

|------------|-------------------------------|
| w | 保存 |
| q | 退出 |
| q! | 强制退出 |
| wq | 保存并退出 |
| wq! | 保存并强制退出 |
| !command | 跳出vim执行该命令 |
| vs filname | 另一个文件,并分屏(如果文件不存在,会自动创建一个新文件) |
| ctrl + ww | 移动光标到另一个终端(屏幕) |
| set nu | 标出行号 |
| set nonu | 取消行号 |
| | |

vs + filename 命令会导致分屏操作,这里我们的光标是只有一个的,所以我们关注光标所在位置即可

<4>其他模式

我们可以在底行模式中输入help vim-modes命令,查看vim的模式,

总共12种模式,这里就不赘述了,如有需要可自行查看。

<5>visual block模式

我们可以使用这个模式进行对文件中代码的批量化的注释,我们可以使用ctrl + v 键进入该模式,下面介绍批量化注释的过程。

|----|-------------|
| 1. | ctrl+v |
| 2. | hjkl 进行区域选择 |
| 3. | shift + i |
| 4. | 输入// |
| 5. | Esc |
[批量化注释过程]

结果如图所示。

|----|----------|
| 1. | ctrl + v |
| 2. | hjkl区域选择 |
| 3. | d 键 |
[批量化去注释过程]

经过以上三个步骤就可以去注释。

二、vim 的配置问题

上图的vim 都是经过配置的,vim的很多功能是需要配置的,比如高亮、显示自动退格,换行......

初始的vim界面如下图

下面我将介绍vim的配置问题,

在配置vim之前,我们需要进入自己用户的家目录下,创建一个.vimrc 的隐藏文件(有就不用了),我们在启动vim ,vim 会根据这个文件配置文件配置启动vim。每一个用户都可以个性化配置自己的vim ,(root 有自己的.vimrc 文件)。

我们可以打开.vimrc 文件,然后进行配置,配置命令有很多,大家可以根据自己喜欢进行配置

" 显示行号

set number

" 启用语法高亮

syntax on

" 设置缩进为4个空格

set tabstop=4

set softtabstop=4

set shiftwidth=4

set expandtab

" 搜索时高亮显示匹配项

set hlsearch

" 搜索时忽略大小写

set ignorecase

" 智能大小写搜索(如果有大写字母则区分大小写)

set smartcase

" 当文件被外部更改时自动加载

set autoread

" 使用鼠标

set mouse=a

" 禁止备份文件

set nobackup

set noswapfile

" 禁止闪烁

set novisualbell

" 命令行高度为2

set cmdheight=2

" 显示括号匹配

set showmatch

" 匹配括号高亮的时间(毫秒)

set matchtime=2

" 历史记录数

set history=1000

" 搜索时实时显示当前匹配的位置

set incsearch

" 文件编码

set encoding=utf-8

" 文件格式

set fileformat=unix

" 自动缩进

set autoindent

" 共享剪贴板

set clipboard=unnamedplus

" 自动切换粘贴模式

set paste

" 允许使用退格键

set backspace=indent,eol,start

" 括号自动完成

inoremap ( ()<Esc>i

inoremap [ []<Esc>i

inoremap { {}<Esc>i

inoremap " ""<Esc>i

inoremap ' ''<Esc>i

" 快速保存退出

nmap <leader>w :wq<CR>

" 全选

map ggVG gg0VG$

" 重新打开上一次关闭的文件

nmap <leader>f :e#<CR>

" 打开.vimrc文件

nmap <leader>v :e ~/.vimrc<CR>

" 显示/隐藏行号

nmap <leader>n :set nu!<CR>

" 切换粘贴模式

nmap <leader>p :set paste!<CR>

下面演示一两个,

通过set nu表示自动设行号,第一个表示语法高亮(其实这个大部分vim都默认有这功能)

上面列举得只是一些配置,如果需要更多得配置,大家可以通过Al 来进行搜索。

如果大家不想配置,下面输入下面得指令(该网址有配置好的vim 文件),注意不要在root 账号下运行该命令。

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh(本命令仅支持centos 7 的linux 系统)

然后按照提示输入root密码,然后我们等待安装完毕,最后手动执行source ~/.bashrc即可,大家也可以在gitee 或 github 上寻找文件。

配置好后,vim 的界面是这样的。

以上就是vim 的全部内容,希望对你有些许帮助,感谢各位读者的阅读,文中如有不对之处,还望各位大佬指正,谢谢!!!!

相关推荐
cwtlw25 分钟前
CSS学习记录20
前端·css·笔记·学习
虾稿29 分钟前
[手机Linux] 七,NextCloud优化设置
linux·运维·服务器
首发运维31 分钟前
centos 释放系统预留内存并关闭Kdump服务
linux·运维·centos·linux操作系统问题
新子-存在了41 分钟前
linux中 mysql备份
linux·运维·mysql
最后一个bug43 分钟前
rt-linux中使用mlockall与free的差异
linux·c语言·arm开发·单片机·嵌入式硬件·算法
ZHOUPUYU43 分钟前
VMware虚拟机超详细安装Linux教程(最新版)
linux·运维·服务器·windows·微软·centos·虚拟机
紫罗兰盛开1 小时前
分布式调度框架学习笔记
笔记·学习
初级代码游戏1 小时前
关于linux的ld.so.conf.d
linux·运维·服务器
xianwu5431 小时前
反向代理模块。开发
linux·开发语言·网络·c++·git
Kobebryant-Manba1 小时前
kafka基本概念
分布式·学习·kafka