首页 > 其他分享 >vi 内部快捷键

vi 内部快捷键

时间:2024-03-21 16:23:23浏览次数:23  
标签:行首 内部 删除 vi 快捷键 单词 词首 跳转 光标

 

打开文件

打开文件时,光标在第5行 :vim +5 /etc/fstab
打开文件时,直接进入尾行:vim + /etc/fstab
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
打开文件时,光标在关键词keyword处:vim +keyword /etc/fstab

模式转换

模式转换
编辑模式到输入模式
    i:insert,在光标所在处输入
    a:append,在光标所在处后方输入
    o:在光标所在处下方打开一个新行,光标直接在行首
    I:在光标所在行的行首输入
    A:在光标所在行的行尾输入
    O:在光标所在处的上方打开一个新行

输入模式到编辑模式
ESC
编辑模式到末行模式
:
末行模式到编辑模式
ESC

 

 

光标跳转

命令模式

1. 行首/尾跳转
0:行首跳转(绝对行首) ^:行首跳转(相对行首,行首第一个非空字符) $:行尾跳转
2. 字符跳转
h:右(相当于小键盘右键)
j:下(相当于小键盘下键)
k:上(相当于小键盘上键)
l:左(相当于小键盘左键)

 

3. 字符串/单词跳转
短跳转【单词定界可能是:空格,短横线,引号,下划线等特殊符号】:
w:(world)单词跳转,到下一个单词词首
b:(begin)词首跳转,到本单词词首,如国已在词首,则跳转到上一单词词首(相当于反向w)
e:(end)   词尾跳转,到本单词词尾,如果已在词尾,则跳转到下一单词词尾

长跳转【单词定界符是:空格{space},制表符{table},换行{enter}】:
W:(world)单词跳转,到下一个单词词首
B:(begin)词首跳转,到本单词词首,如国已在词首,则跳转到上一单词词首(相当于反向w)
E:(end)   词尾跳转,到本单词词尾,如果已在词尾,则跳转到下一单词词尾

4. 多段跳转
数字+跳转符(n+cmd)
如:5l【光标左移5个字符】;6W【光标左移6个单词】;8E【光标右移8个单词】

5. 行间跳转
gg:默认跳转到首行
G:默认跳转到末行
5gg:跳转到第五行
7G:跳转到第7行

6. 句间跳转
):跳转到下一句
(:跳转到上一句

7. 段间跳转
}:跳转到下一段
}:跳转到上一段

8.翻屏操作
Ctrl + f:向文件尾部翻一屏
Ctrl + b:向文件首部翻一屏
Ctrl + d:向文件尾部翻半屏
Ctrl + u:向文件首部翻半屏
Enter:向文件尾部翻一行
k:向文件首部翻一行


命令模式增删改查

1. 查找
/keyword:查找关键词(keyword)

2. 替换(不改变词句长度)
r:只替换光标处字符
R:从光标处开始替换

3. 字符删除
del键:删除光标处字符
x:删除光标处字符
X:删除光标前字符
5x:删除光标后5个字符(包含光标)
5X:删除光标前5个字符(不包括光标)

4. 字段删除
d:删除命令,可结合光标跳转字符,实现范围删除
D:删除到行尾
d$:删除当前光标所在处到行尾的内容,也可以使用D
d0:删除到行首(包括行首空格不包括光标处字符)
d^:删除当前光标所在处到行首的内容(不包括行首的空格)
dw:删除到光标到下一个单词的词首
de:删除到光标到本单词词尾或下一个单词的行尾
db:删除到光标到本单词词首或上一个单词的词首

dd:删除光标所在的行

5dW:向后删除5个单词
5. 复制
y:复制,工作行为相似于d命令
y$ y^ y0 ye yw yb yE yW yB yy         
5yW:向后复制5个单词

6. 粘贴
p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方,否则则粘贴至当前光标所在处的后方
P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则,则粘贴至当前光标所在处的前方

7. 撤销(undo)
u:撤销此前的操作
5u:撤销此前的5个操作

8. 反撤销
恢复此前的撤销操作 Ctrl + r

9. 重复
重复执行前一个编辑操作 . (点号)

10. 删除然后插入

c:编辑模式--> 输入模式,实现删除操作
和d命令效果是一样的,只是他做完删除动作以后会将当前模式转换为输入模式

视图模式

可视化模式
    v:按字符选定
    V:按行选定

    结合编辑命令:y,p,d

 视图模式可以批量插入与删除,便于批量注释与解注释

删除(当删除内容为 行首的 # 时,即可批量解除注释 ):

光标移动(上,下,左,右键 / k,j,l,h)选中块

然后del删除块(del / dd)



插入(当行首块 批量插入内容为 # 时,即可完成批量注释)(仅vim有效,vi无效)

光标移动(上,下,左,右键 / k,j,l,h)选中块

然后按插入符(I:光标前插入;A:光标后插入),插入 字符串 会在第一行出现

最后双击 ESC,同步插入的 字符串 到所有选择块区

末行模式

:start_pos[,end_pos]
    #特定的第#行,例如5即第5行
    .:当前行
    $:最后一行;
    #,#:指定行范围,左侧为起始行,右侧为结束行;
    #,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;
        例如:3,+7:表示从第三行开始,然后增加七行。
            .,$-1:表示从当前行到倒数第二行
            1,$:表示全文,也可以用%表示
      /pattern/:从光标所在处开始向文件尾部第一次被这个指定的模式所匹配到的行
        /first/,$ :表示从当前光标开始第一次能被first匹配到的行开始到最后一行结束
      /pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始至第一次由pat2匹配到的行结束之间的所有行
可同编辑命令一同使用
    d
    y
    w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;
    r /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置

末行模式批量注释与取消注释

#启用行号
:set nu

#行首批量插入注释符号(示例:3-5行)
:3,5s/^/#/g

#行首批量删除注释符号(示例:3-5行)
:3,+2s/^#//g

多文件

多文件
用法
    vim  FILE1 FILE2...
在文件间切换
    :next  下一个
    :prev 上一个
    :first 第一个
    :last 最后一个
退出所有文件
    :wqall 保存所有文件并退出
    :wall  
    :qall
多窗口
-o:水平分割窗口
 vim -o fstab fstab.new fstab.patch 
    同时按Ctrl + w然后再按住上或者下就可以切换屏幕
-O:垂直分割窗口
 vim -O fstab fstab.new fstab.patch  
    同时按住Ctrl + w然后再按左或者右就可以切换屏幕
单个文件也可以分割为多个窗口进行查看:
      Ctrl + w,然后松开,然后再按s:水平分割窗口
      Ctrl + w,然后松开,然后再按v:垂直分割窗口
q或者wq等等只是退出当前文件,使用qall或者wqall才会退出所有


 

有效范围
在末行模式下的设定仅对当前vim进程有效
永久有效的话就需要编辑配置文件
    全局:/etc/vimrc
    用户个人:~/.vimrc  。在此文件中加入set nu时打开文件都会显示行号
行号
显示:set number,可简写为set nu
取消显示:set nomber,也可简写为set nonu
粘贴模式
启用:set paste
取消:set nopaste
语法高亮
启用:syntax on
禁用:syntax off

 

 

 

 

插入模式

 

标签:行首,内部,删除,vi,快捷键,单词,词首,跳转,光标
From: https://www.cnblogs.com/santia-god/p/18082260

相关文章

  • 12 vi编辑器
    介绍vi\vim是visualinterface的简称,是Linux中最经典的文本编辑器命令行下对文本文件进行编辑的绝佳选择vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。vi\vim......
  • 【视觉语言大模型+LLaVA1.0】大语言模型视觉助手(视觉指令调优)GPT4-Vision丐版
    官方资源汇总:项目主页||https://huggingface.co/liuhaotian23.04.LLaVA1.论文:LargeLanguageandVisionAssistant(VisualInstructionTuning)23.10LLaVA-1.5论文:ImprovedBaselineswithVisualInstructionTuning23.11LLaVA-Plus项目:LLaVA-Plus:LargeLang......
  • 【大语言视觉助手+LLaVA1.5】23.10.LLaVA-1.5改善后视觉语言大模型: Improved Baselin
    LLaVa家族官方资源汇总:项目主页||https://huggingface.co/liuhaotian23.04.LLaVA1.0论文:LargeLanguageandVisionAssistant(VisualInstructionTuning)23.06LLaVA-Med(医学图片视觉助手):TrainingaLargeLanguage-and-VisionAssistantforBiomedicineinOne......
  • 内部类
    内部类内部类就是定义在一个类里面的类 内部类的优缺点1.内部类与外部类可以方便的访问彼此的私有域(包含私有方法、私有属性)2.封装性更好3.匿名内部类可以使代码更加简洁,定义一个类的同时对其进行实例化内部类的分类成员内部类 静态内部类有static修饰的成员......
  • SPPSVC.EXE(Software Protection Platform Service)是Windows操作系统中的一个进程,起源
    ‪C:\Windows\System32\sppsvc.exeSPPSVC.EXE(SoftwareProtectionPlatformService)是Windows操作系统中的一个进程,起源于微软公司为了保护其软件版权而开发的软件保护服务。这个服务主要负责验证Windows的许可证信息、管理软件激活状态以及执行与软件许可证相关的任务。SPPSVC.E......
  • vite+vue3+vuex 加密
    1.安装JSEncrypt  npminstalljsencrypt2.加密方法//加密算法import{JSEncrypt}from'jsencrypt';//加密functionencryptText(text){ constpublicKey='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCh5Nk2GLiyQFMIU+h3OEA4UeFbu3dCH5sjd/sLTxxvwjXq7JLqJbt2rC......
  • Windows7系统themeservice.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个themeservice.dll文件(挑选合适的版本文件)......
  • 创建Service资源
    Nodeport类型:apiVersion:v1#api版本kind:Service#资源类型metadata:name:nginx-service#Service的名称labels:#Service自己的标签app:nginx#为该Service设置key为app,value为nginx的标签spec:......
  • 华企盾DSC企业内部信息安全的一站式解决方案
    随着计算机和网络技术的迅速发展,越来越多的信息以电子形式存储在了个人和商用电脑中,并通过网络进行了广泛的传播。然而,在这个大数据时代中,信息安全问题突显出来,并逐渐引起了人们的高度重视。众所周知,数据的存储和交换中,信息的安全问题尤为重要。据调查显示,有90%的企事业单位文件是......
  • Java 面向对象编程进阶六(内部类 )
    目录内部类内部类的概念内部类的分类1、非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同)2、静态内部类3、匿名内部类4、局部内部类内部类        内部类是一类特殊的类,指的是定义在一个类的内部的类。实际开发中,为了方便的使用外部类的相......