热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1.4Vim的高级用法配置

Vim的高级用法配置Vim的三种工作模式Vim配置文件临时设定永久设定Vim高级用法搜索功能字符管理复制删除剪切粘贴撤销恢复可视化模式字符批量管理批量插入批量修改分屏模式同步分屏不

Vim的高级用法配置

  • Vim的三种工作模式
  • Vim配置文件
    • 临时设定
    • 永久设定
  • Vim高级用法
    • 搜索功能
    • 字符管理
      • 复制
      • 删除
      • 剪切
      • 粘贴
      • 撤销
      • 恢复
    • 可视化模式
    • 字符批量管理
      • 批量插入
      • 批量修改
    • 分屏模式
      • 同步分屏
      • 不同步分屏
    • 快速定位光标
    • 插入模式详细解析
    • 退出模式具体差异


Vim的三种工作模式

Vim是全球两大流行文本编辑器之一(另外一个是Emacs),学习Vim的高级用法对提升Linux系统使用体验和效率有着至关重要的作用.
在之前我们已经对简单用法进行了入门,
那么正好用这个作为开头.

vim file ##编辑文件内容

那么我们对编辑的过程进行阶段性分析.

  1. i进入了插入模式后才能输入内容.
  2. 输入内容后按Esc退出插入模式返回命令模式进行保存.
  3. 以及返回Shell页面时用到的退出模式.

这就是Vim的三种工作模式:插入模式,命令模式,退出模式.

在不确定Vim的高级用法是否正确时也可以查看手册,操作手册的进入方式有2种可供选择.

vimtutor ##Shell下使用,进入vim手册:help ##vim命令模式下使用,查看操作手册

帮助文件

Vim配置文件

在简单使用了vim一小段时间后想必你一定觉得有些设置很不人性化而且也欠缺了某些功能,这是因为未对配置文件进行定制导致的.大部分需求的设置在配置文件中都能进行定制.
Vim的配置修改有两种.

  • 临时设定
  • 写入配置文件长期使用

两者的使用场景自不多言,下面分别进行简述.

临时设定

在vim的命令模式下输入对应的关键词即可临时开启对应的设定,但是当你退出vim或者退出shell后,就会回到初始模式.

##部分
设定举例
:set ##以此为命令开端进行临时设置
:set nonu ##显示行号
:set mouse=a ##使得鼠标可用
:set cursorline #显示光标所在行的行线

永久设定

临时设定主要是对于单次使用场景的需求,当某些设置需要长期使用时,我们更倾向于将其写入配置文件.
Vim在Linux下的配置文件有两类,对所有用户生效的和对单个用户生效的.为了安全起见我们一般修改单个用户的设置.

##Vim配置文件位置
/etc/vimrc ##对所有用户生效的配置文件~/.vimrc ##对当前用户生效的配置文件##常用

修改配置文件

Vim高级用法

搜索功能

当文件内容较长时使用,能较为方便的定位到需要的内容.

/关键字 ##高亮显示关键字
:noh ##取消高亮显示##不取消高亮显示就会一直存在,即使是进入插入模式
n ##向下匹配关键字
N ##向上匹配关键字

取消高亮

字符管理

均为命令模式下的快捷键,相比进入插入模式手动输入,这些字符管理用法主要对于可用部分进行复制粘贴等操作,减少手动输入的量.

复制

y ##复制的快捷键
yl ##复制1个字母
y3l ##复制3个字母
yw ##复制1个单词
y3w ##复制3个单词
yy ##复制1行
y3y ##复制3行

删除

d ##删除的快捷键
dl ##删除1个字母
d3l ##删除3个字母
dw ##删除1个单词
d3w ##删除3个单词
dd ##删除1行
d3d ##删除3行##默认都是从光标所在位置开始.

剪切

c ##剪切的快捷键
cl ##剪切1个字母
c3l ##剪切3个字母
cw ##剪切1个单词
c3w ##剪切3个单词
cc ##剪切1行
c3c ##剪切3行

注意事项

  • 执行剪切操作后会进入到插入模式,无法继续使用命令模式快捷指令,如果要粘贴需要ESC退出插入模式返回命令模式.

粘贴

p ##粘贴的快捷键

撤销

u ##撤销最近一次对文本做的修改操作
U ##第一次会撤销对一行文本(光标所在行)做过的全部操作##第二次会恢复对该行文本做过的所有操作

恢复

<ctrl>&#43;<R> ##恢复最近一次所做的撤销操作

可视化模式

可视化模式,也叫Visual模式.主要是为了便于选取文本.可视化模式与下文的
字符批量管理经常组合使用.

<ctrl>&#43;<v> ##进入可视化模式
<ESC> ##退出可视化模式

字符批量管理


批量插入

将光标移到需要的位置,如行首
进入可视化模式
选择需要批量插入字符的行
<I>进入插入模式
插入需要的字符
<ESC>推出插入模式所有被选择的行都会进行插入操作

注意事项
如果是从行的中间部位开始选择插入行,批量插入后的文本位置可能会变得很奇怪.
批量插入

批量修改

:%s/原字符/替换字符/g ##在全文范围将元字符修改为替换字符##%s表示全文的行&#xff0c;g表示全文的列
:1,5s/Text/Test/g ##将1-5行中所有的Text替换为Test
:%s/^\s\&#43; ##删除多余的行首空格或Tab
:%s/\s\&#43;$ ##删除多余的行尾空格或Tab
/About/,/Quit/s/Text/Test/g ##将About到Quit间所有的Text替换为Test

批量修改非常吃熟练度,记忆加操作才能对这些指令有更深刻的理解和记忆.
批量修改

分屏模式


同步分屏

用于编辑单一文件时分屏浏览/操作

<ctrl> &#43; <w> <s> ##上下分屏
<ctrl> &#43; <w> <v> ##左右分屏
<ctrl> &#43; <w> <|||> ##光标移动
<ctrl> &#43; <w> <c> ##取消分屏需要注意的是,操作方式按完<ctrl> &#43; <w>后再单独按后面的按键
否则执行会失败

单文件上下
单文件左右

不同步分屏

同时编辑多个文件时的分屏操作

已经在vim中时执行以下命令
:sp filename ##上下分屏,并打开一个新的文件
:vsp filename ##左右分屏,并打开一个新的文件vim -On file1 file2 ... ##左右分屏打开2个文件进行编辑
vim -on file1 file2 ... ##上下分屏打开2个文件进行编辑
vim -p file1 file2 ... ##标签方式分屏打开2个文件进行编辑:tabn ##标签方式下分屏时切换到下一个文件
:tabp ##标签方式下分屏时切换到上一个文件

标签分屏

快速定位光标

用来快速改变光标在文件中的位置,与关键词检索属于类似的用法.

gg ##光标移动到文件第一行行首
G ##光标移动到最后一行行首
:数字 ##光标移动到指定行行首

插入模式详细解析

我们平常进入插入模式的方法似乎都是i,但实际上还有许多不同的进入方法,此处加以罗列.

i ##光标所在位置插入
I ##光标所在行行首插入
A ##光标所在行的行尾插入
a ##光标所在字符的下一个字符插入
o ##光标所在行的下一行插入
O ##光标所在行的上一行插入
s ##删除光标所在字符插入
S ##删除光标所在行插入

退出模式具体差异


  • 进行了修改而不进行保存时,正常退出会被拒绝.
  • 强制退出时不会被拒绝,但是对文件的改动会丢失.

:q ##退出文件编辑
:q! ##强制退出文件编辑,不保存修改
:wq ##保存并退出
:wq! ##强行保存退出##仅当文件所熟人是是自己或者root用户时可用


推荐阅读
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Python数据分析入门指南:全面了解Python在数据科学中的应用 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • Ulysses Mac v29:革新文本编辑与写作体验
    探索Ulysses Mac v29,这款先进的纯文本编辑器为Mac用户带来了全新的写作和编辑环境。它不仅具备简洁直观的界面,还融合了Markdown等标记语言的最佳特性,支持多种格式导出,并提供强大的组织和同步功能。 ... [详细]
  • 本文介绍如何在 Visual Studio Code 中使用 Jupyter Notebook 插件,包括创建、编辑和运行笔记本的基本操作。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • Linux中tput命令怎么用
    这篇文章主要介绍Linux中tput命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux常用命令tput命令将通过ter ... [详细]
author-avatar
民主公园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有