当前位置:网站首页>一篇文章带你入门vim
一篇文章带你入门vim
2022-06-30 02:56:00 【爱敲代码的三毛】
文章目录
vi&vim
vi和vim的区别,简单来说它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi所有指令,而且还与一些新的特性在里面,比如语法高亮,可视化操作不仅可以在 终端运行,也可以运行于 mac os上。
vim 概念
vim是有着多种模式的文本编辑器,这里这介绍最常用的三种模式。
- 命令模式(默认模式)
控制屏幕光标的移动,字符、字和行的删除、移动复制某区段以及进入 插入模式下,或者进入 底行模式下 - 插入模式
只有在插入模式下才可以输入文字,按Esc键就可以回到命令模式 - 底行模式
文件保存退出,也可以进行文件替换,查找字符串,列出行号等一系列操作,在命令模式下,shift+:就可以 进入该模式,本质就是输入一个冒号。
查看所有 vim 模式 命令,进入vim 在底行模式 输入下面的命令help vim-modes
vim共用16种模式,分为 6这种基本模式和 6种附加模式


vim的基本操作 (模式切换+保存退出)

语法:vim 文件名
注意:vim 命令 进入到 vim之后,默认是 处于命令模式的,要切换到插入模式后才能进行输入文字
[命令模式] 切换到 [插入模式]
输入a
输入i
出入o
也就是说输入 a、i、o都可以从命令模式切换到插入模式
[命令模式] 切换到[ 底行模式]
同时按住shift + :,本质上就是输入冒号,就可以从命令模式切换到底行模式[插入模式 或 底行模式] 切换到 命令模式
无论是在插入模式还是在底行模式下或者你不知道你在哪个模式,直接无脑按
Esc就可以了退出vim及其保存文件
在命令模式下输入:进入底行模式
共有三个字母选项:w:保存、q:退出、!:强制- 保存文件:
:w - 不保存退出:
q - 强制保存并退出:
wq! - 强制退出:
q - 强制保存:
w!
- 保存文件:

vim 命令模式操作汇总
移动光标
光标的移动:左
h、下j、上k、右l光标左右定位:
shift+^,shift+$,左右定位(直接将光标定位到当前行的字符最左侧和最右侧)`空白字符不算上下定位:
shift+g定位到最后一行、gg定位到第一行指定定位:
n+shift+g,n是数字表示 定位 到 第几行,比如 8+shift+g 定位到第八行开头单词定位:
w光标定位到下个单词的开头,e光标定位到下个单词的结尾,b光标定位 到上个单词的开头向后定位:
数字+l将光标移动到当前行的当前位置的后n个字符,如果是6+l就是向后移动 6个字符翻页:
ctrl+f屏幕向后移动一页,ctrl+b屏幕向前移动一页,ctrl+d屏幕向后移动半页,ctrl+u屏幕往前移动半页
删除文字
x:每按一次,删除光标所在位置的第一个字符[#x]:比如3x表示删除光标所在位置的后面(包含 自己)的3个字符X:大写X,每按一次删除光标所在位置前面的一个字符(不包括自己)#X:大写X,比如10X删除光标所在位置的前10个字符(不包括自己)dd:删除光标所在的那一行#dd:从光标所在行开始删#行,,比如4dd就上从当前行往下删4行(包括所在行)
复制剪切粘贴文字
yw:将光标所在之处到字尾的字符复制到缓冲区(可理解为从某个单词的光标位置复制这个单词的字母,一般遇到不同类型的字符会停止复制)#yw:复制#个单词到缓冲区(单词与单词的区分可以是单词或者字符或者中文,这可能不严谨)yy:复制光标 所在行到缓冲区#yy:复制光标所在行往后#行,包括当前行p:将缓冲区的字符粘贴到光标所在位置(注意:所有于y相关的复制命令都必须和p配合才能 完成复制与粘贴功能)dd+p:剪切当前行文字
替换文字
r:替换光标所在字符,比如r+6就是将光标所在字符替换成 6R:不断替换光标所到之处的字符,知道按下Esc键为止
撤销和恢复撤销
u:立即撤回到上一次操作,类似于windows的Ctrl+zCtrl+r:撤销恢复,恢复到撤销之前的状态
大小写切换
shirt + ~:将光标所在处的字符小写替换成大小,大小替换成小写
底行模式命令汇总
shift + : 进入底行模式
显示行号
set nu:显示行号
set nonu:取消行号
保存退出
w:保存、q:退出、!:强制,可以配合使用
在vim下执行Linux命令
!+[命令]:不用退出vim执行Linux命令

再ls查询是否有编译成功的代码


执行编译成功的代码


vim分屏
vs 文件名:分屏
如果文件不存在,该命令会自动创建,且要用命令保存,不保存最后退出 还是 不会在目录中出现
每个分屏都是一个vim,都可以进行vim多种模式的切换

ctrl + w:分屏时,光标在多屏幕下进行切换
多个分屏可以用该命令进行切换,光标在哪就在哪个vim窗口里
vim配置
在
/etc/下面,有个名为vimrc的文件,是系统中公共的 vim配置文件,对所有用户都有效而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为
.vimrc
用vim .vimrc打开文件就可以在里面添加一些vim配置比如显示行号
set nu
配置了这个之后就不用在底行模式显示行号了
更多配置可自行百度
由于vim的配置非常麻烦,某些配置还需要安装插件。可以使用大佬在 Githup上的vim配置,只需要一条命令就可以使用齐全的vim配置
边栏推荐
- CMake教程系列-02-使用cmake代碼生成二進制
- Heavy attack -- ue5's open source digital twin solution
- Note the use of export/import and class inheritance in ES6
- CMake教程系列-05-选项及变量
- (图论) 连通分量(模板) + 强连通分量(模板)
- Summary of knowledge points about eigenvalues and eigenvectors of matrices in Chapter 5 of Linear Algebra (Jeff's self perception)
- Raki's notes on reading paper: neighborhood matching network for entity alignment
- Intel hex, Motorola S-Record format detailed analysis
- Differences between comparable and comparator
- Raki's notes on reading paper: named entity recognition as dependency parsing
猜你喜欢

How to switch ipykernel to a different CONDA virtual environment in jupyterlab?

C # basic learning (XIII) | breakpoint debugging

How to use vant to realize data paging and drop-down loading

What is the difference between a layer 3 switch and a layer 2 switch

Linear algebra Chapter 4 Summary of knowledge points of linear equations (Jeff's self perception)

Interrupt operation: abortcontroller learning notes

Customize the buttons of jvxetable and the usage of $set under notes

重磅来袭--UE5的开源数字孪生解决方案

Raki's notes on reading paper: Leveraging type descriptions for zero shot named entity recognition and classification

公司电脑强制休眠的3种解决方案
随机推荐
HTA入门基础教程 | VBS脚本的GUI界面 HTA简明教程 ,附带完整历程及界面美化
How does native JS generate Jiugong lattice
快速排序、聚簇索引、寻找数据中第k大的值
CMake教程系列-05-选项及变量
Tp6 framework integrates JWT for token authentication
Formal and actual parameters, value passing and address passing
How to prevent duplicate submission under concurrent requests
Jvxetable增加自定义按钮
Distributed file system fastdfs
迅为恩智浦iTOP-IMX6开发平台
华为面试题: 高矮个子排队
[untitled]
IDEA 远程调试 Remote JVM Debug
Jvxetable sub table record loading completion event
Global and Chinese market of relay lens 2022-2028: Research Report on technology, participants, trends, market size and share
Some configuration details about servlet initial development
IBM WebSphere channel connectivity setup and testing
Global and Chinese markets for wireless security in LTE networks 2022-2028: Research Report on technology, participants, trends, market size and share
Differences between comparable and comparator
JvxeTable子表记录加载完毕事件