热门标签 | 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用户时可用


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
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社区 版权所有