Vim大揭秘:Linux下编辑之道

欢迎来到我的博客,代码的世界里,每一行都是一个故事

Vim大揭秘:Linux下编辑之道

Vim大揭秘:Linux下编辑之道前言

在Linux的世界中,Vim是一位备受尊敬的编辑器大师。但对于初学者而言,Vim的陡峭学习曲线可能让人望而却步。本文旨在揭开Vim的神秘面纱,让你轻松掌握这个优雅的编辑器,享受编程的乐趣。

基础操作

好的,以下是 Vim 的基础操作:

进入 Vim: 打开终端。输入 vim,然后按 Enter 键。 退出 Vim: 在命令模式下(按 Esc 键确保进入命令模式),输入 :wq 并按 Enter 键,保存并退出。如果只想保存而不退出,可以输入 :w。若要强制退出而不保存,可以输入 :q!。 移动光标: 在命令模式下,使用以下键进行光标移动: h – 向左j – 向下k – 向上l – 向右你也可以使用箭头键进行移动。 插入文本: 在命令模式下,按 i 进入插入模式。在插入模式中,你可以开始键入文本。要返回命令模式,按 Esc 键。 删除文本: 在命令模式下,使用以下命令: x – 删除光标处的字符。dd – 删除整行。dw – 删除一个单词。d$ – 删除光标处到行尾的内容。

这是 Vim 的基础操作,初学者可能会觉得有些繁琐,但随着熟练度的提高,Vim 的效率和强大功能将更为明显。记得在使用时经常查看 Vim 的帮助文档,这会对学习有所帮助。

编辑模式与命令模式

在 Vim 中,有两种主要模式:命令模式和编辑模式。下面是切换、复制、粘贴和删除文本的一些建议:

切换模式: 从命令模式切换到编辑模式: 在命令模式下,按下 i 进入插入模式,此时光标会出现在当前位置。也可以按 I 进入插入模式,但光标会移到当前行的开头。 从编辑模式切换到命令模式: 在编辑模式中,按下 Esc 键,将光标切换回命令模式。复制、粘贴和删除: 复制文本: 在命令模式下,将光标移到要复制的起始位置。按 v 进入可视模式。使用光标键移动选择区域。按 y 复制选中的文本。 粘贴文本: 在命令模式下,将光标移到要粘贴的位置。按 p 粘贴之前复制的文本。 删除文本: 在命令模式下,将光标移到要删除的位置。使用 x 删除当前光标处的字符。使用 dd 删除整行。使用 dw 删除一个单词。使用 D 删除光标位置到行尾的内容。

这些是一些基本的复制、粘贴和删除操作。Vim 的可视模式和命令模式的配合可以让你更灵活地操作文本。请记住,Vim 有很多高级的编辑功能,可以通过查看 Vim 的帮助文档来了解更多详细信息。

vim的高级技巧

Vim 的高级技巧包括使用寄存器进行文本操作以及定义和执行宏。下面是一些相关的操作:

使用寄存器进行文本操作: 查看寄存器: 在命令模式下,输入 :registers 可以查看所有寄存器中的内容。 将文本复制到寄存器: 在可视模式下选择文本。输入 "ay 将选中的文本复制到寄存器 a 中。 从寄存器粘贴文本: 在插入模式或者命令模式下,输入 "ap 将寄存器 a 中的文本粘贴。定义和执行宏: 录制宏: 在命令模式下,按下 q 后紧跟寄存器名字(例如 qa)来开始录制宏。执行你的操作,然后按下 q 来停止录制。 执行宏: 在命令模式下,输入 @a 来执行宏 a。这将重复录制宏时的操作。 重复执行宏: 输入 @@ 来重复执行上一次使用的宏。 执行宏多次: 输入 3@a 来执行宏 a 三次。可以根据需要更改数字。

这些技巧可以使你更高效地处理文本。通过熟练掌握寄存器和宏的使用,你能够轻松地在 Vim 中处理复杂的编辑任务。请记住,Vim 的学习曲线较陡,慢慢熟悉这些高级技巧会让你受益匪浅。

插件与配置使用 Vim 插件扩展功能: 安装插件管理器: 有多个插件管理器可供选择,比如 vim-plugVundlePathogen 等。选择一个并按照其文档进行安装。 配置插件管理器: 在你的 ~/.vimrc(Vim 配置文件)中添加插件管理器的相关配置。 安装插件: 使用插件管理器,在配置文件中添加你想要安装的插件,然后运行插件管理器的安装命令。 常见插件命令: 在命令模式下,使用 :PluginInstall(对于 Vundle)或 :PlugInstall(对于 vim-plug)命令安装配置文件中指定的插件。编写和应用 Vim 的配置文件:

创建或编辑配置文件:

打开终端,输入 vim ~/.vimrc 来创建或编辑 Vim 的配置文件。

基本配置:

添加基本配置选项,如缩进设置、行号显示、颜色主题等。代码语言:javascript代码运行次数:0运行复制

set number        " 显示行号set tabstop=4     " 设置制表符宽度为 4set autoindent    " 自动缩进colorscheme desert " 使用 desert 颜色主题

配置插件:

在配置文件中使用插件管理器的相关语法配置你的插件。代码语言:javascript代码运行次数:0运行复制

" vim-plugcall plug#begin('~/.vim/plugged')Plug 'tpope/vim-fugitive'   " 例子:安装 vim-fugitive 插件call plug#end()

保存并退出:

在编辑模式下,按 Esc 进入命令模式,输入 :wq 保存并退出。

重新加载配置:

在 Vim 中,你可以输入 :source ~/.vimrc 来重新加载配置文件,使更改生效。

通过配置文件,你可以定制化 Vim 的外观和行为,而插件则为你提供了各种额外的功能和特性。根据个人需求选择和配置插件,使得 Vim 更符合你的工作流程。

搜索与替换

在 Vim 中进行搜索和替换是非常常见的操作。以下是一些搜索和替换的基本命令:

搜索关键词: 向前搜索: 在命令模式下,输入 / 后跟要搜索的关键词,然后按 Enter 键。使用 n 键跳到下一个匹配项,使用 N 键跳到上一个匹配项。 向后搜索: 在命令模式下,输入 ? 后跟要搜索的关键词,然后按 Enter 键。使用 n 键跳到上一个匹配项,使用 N 键跳到下一个匹配项。 取消搜索高亮: 在命令模式下,输入 :nohl 取消搜索结果的高亮显示。替换操作: 替换当前匹配项: 在命令模式下,将光标移到要替换的匹配项上。输入 :s/old/new/,其中 old 是要被替换的内容,new 是替换后的内容。添加 g 标志进行全局替换,如 :s/old/new/g。 替换整行: 使用 :s/^old/new/ 替换行首的匹配项。使用 :s/old$/new/ 替换行尾的匹配项。 全局替换: 使用 :%s/old/new/g 替换整个文件中的所有匹配项。添加 c 标志进行确认每个替换,如 :%s/old/new/gc。 替换指定范围: 例如,使用 :10,20s/old/new/g 替换第 10 行到第 20 行之间的匹配项。

这些是基本的搜索和替换命令,根据需要可以进行更高级的操作。请查阅 Vim 的帮助文档以获取更多详细信息。

多文件编辑

在 Vim 中,你可以使用多种方式来编辑多个文件,包括窗口(splits)和标签页(tabs)。以下是一些建议:

AI图像编辑器 AI图像编辑器

使用文本提示编辑、变换和增强照片

AI图像编辑器 46 查看详情 AI图像编辑器 使用窗口(Splits): 水平分割窗口: 在命令模式下,输入 :split:sp 来水平分割当前窗口。使用 Ctrl + W,然后按 hl 在水平分割的窗口之间切换。 垂直分割窗口: 在命令模式下,输入 :vsplit:vsp 来垂直分割当前窗口。使用 Ctrl + W,然后按 jk 在垂直分割的窗口之间切换。 关闭窗口: 在命令模式下,输入 :q 来关闭当前窗口。 调整窗口大小: 在命令模式下,可以使用 Ctrl + W,然后按 +- 来调整活动窗口的大小。使用标签页(Tabs): 新建标签页: 在命令模式下,输入 :tabnew:tabe 来新建一个标签页。在新标签页中输入 :edit filename 可以打开一个文件。 在标签页之间切换: 使用 gt 来移动到下一个标签页。使用 gT 来移动到上一个标签页。 关闭标签页: 在命令模式下,输入 :tabclose:tabc 来关闭当前标签页。 调整标签页顺序: 在命令模式下,输入 :tabm n 将当前标签页移动到第 n 个位置。 在标签页中分割窗口: 在标签页中可以使用和窗口分割相同的命令。

这些是在 Vim 中进行多文件编辑时使用的一些基本命令。你可以根据需要选择窗口或标签页来组织你的编辑环境。如果需要更多信息,可以查阅 Vim 的帮助文档。

vim的快捷键常用的 Vim 快捷键: 基本移动: h – 向左移动光标j – 向下移动光标k – 向上移动光标l – 向右移动光标 文本编辑: i – 进入插入模式a – 在光标后进入插入模式A – 在行尾进入插入模式o – 在当前行下方插入新行O – 在当前行上方插入新行 复制、粘贴和删除: y – 复制选中文本p – 粘贴文本dd – 删除当前行dw – 删除一个单词x – 删除当前光标处字符 撤销和重做: u – 撤销Ctrl + r – 重做 保存和退出: :w – 保存:q – 退出:wq – 保存并退出:x – 保存并退出(如果有修改) 搜索和替换: / – 向前搜索? – 向后搜索:s/old/new/g – 替换所有匹配项自定义快捷键:

.vimrc 文件中定义快捷键:

打开 Vim 配置文件,通常是 ~/.vimrc。使用 map 命令来定义快捷键。代码语言:javascript代码运行次数:0运行复制

" 示例:将 F2 映射为保存文件nnoremap  :w

使用函数定义复杂操作:

可以使用函数定义更复杂的操作,然后将快捷键映射到这些函数。代码语言:javascript代码运行次数:0运行复制

" 示例:定义一个函数实现删除当前行并保存function! DeleteAndSave()    normal! dd    wendfunctionnnoremap  :call DeleteAndSave()

使用 键:

键是一个占位符,可以在 .vimrc 中设置,默认是反斜杠 。使用 键可以避免与其他插件的冲突。代码语言:javascript代码运行次数:0运行复制

" 示例:将 s 映射为保存文件nnoremap s :w

重新加载配置文件:

在 Vim 中输入 :source ~/.vimrc 重新加载配置文件,使得更改生效。

通过自定义快捷键,你可以根据个人偏好和工作流程优化 Vim 的使用体验。注意要确保快捷键不会和其他插件或系统快捷键冲突。

vim定制化修改颜色主题:

选择颜色主题:

在 Vim 中,有许多颜色主题可供选择。你可以在网上找到并下载喜欢的主题。将主题文件保存到 ~/.vim/colors/ 目录下。

配置颜色主题:

打开你的 ~/.vimrc 文件。使用 colorscheme 命令设置你喜欢的颜色主题。代码语言:javascript代码运行次数:0运行复制

" 示例:使用 desert 颜色主题colorscheme desert

保存文件并在 Vim 中输入 :source ~/.vimrc 重新加载配置。配置 Vim 的显示和行为:

显示行号:

~/.vimrc 文件中添加以下行来显示行号:代码语言:javascript代码运行次数:0运行复制

set number

显示当前行和列:

~/.vimrc 文件中添加以下行来显示当前行和列:代码语言:javascript代码运行次数:0运行复制

set ruler

设置缩进:

~/.vimrc 文件中设置缩进,例如:代码语言:javascript代码运行次数:0运行复制

set tabstop=4set shiftwidth=4set expandtab

上述配置将 Tab 键展开为四个空格。

开启语法高亮:

~/.vimrc 文件中添加以下行来启用语法高亮:代码语言:javascript代码运行次数:0运行复制

syntax enable

显示匹配的括号:

~/.vimrc 文件中添加以下行来高亮显示匹配的括号:代码语言:javascript代码运行次数:0运行复制

set showmatch

自动补全:

通过插件(如 coc.nvimYouCompleteMe)来实现自动补全功能。代码语言:javascript代码运行次数:0运行复制

" 示例:使用 coc.nvim 插件Plug 'neoclide/coc.nvim', {'branch': 'release'}

然后运行 :PlugInstall 安装插件。

更改光标样式:

~/.vimrc 文件中添加以下行来更改光标样式:代码语言:javascript代码运行次数:0运行复制

set guicursor=a:block

上述配置将光标设置为块状。

设置背景颜色:

~/.vimrc 文件中添加以下行来设置背景颜色:代码语言:javascript代码运行次数:0运行复制

set background=dark

适用于暗色主题。

以上就是Vim大揭秘:Linux下编辑之道的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/428760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
定制软件开发为社区养老提供更贴心的服务
上一篇 2025年11月7日 12:53:03
怎么在VSCode里使用Jupyter Notebook?
下一篇 2025年11月7日 12:53:11

相关推荐

  • Linux中如何安装Git工具_Linux安装Git工具的详细教程

    在Linux系统中安装Git工具是进行版本控制的第一步,尤其对于开发者来说非常关键。不同Linux发行版使用不同的包管理器,因此安装方式略有差异。下面将介绍在主流Linux系统中安装Git的详细步骤。 1. 在Ubuntu/Debian系统中安装Git Ubuntu和Debian系统使用apt作为包…

    2026年9月24日
    100
  • 如何通过压力测试判断电源的峰值输出可靠性?

    答案是判断电源峰值输出可靠性需通过动态负载测试。使用可编程电子负载模拟瞬时功耗变化,配合高带宽示波器监测电压跌落、恢复时间与纹波噪声,同时用热成像仪评估关键元件温度,若在快速负载切换下电压稳定、纹波低、温升可控,则电源峰值性能可靠。 判断电源的峰值输出可靠性,说白了,就是看它在最极端、最苛刻的瞬间,…

    2026年9月24日
    300
  • VSCode如何分屏和布局管理 VSCode多窗口编辑的高效方式

    vscode多窗口编辑的快捷键和技巧包括:1. 垂直分屏使用 ctrl+(macos为 cmd+);2. 水平分屏使用 ctrl+k v(macos为 cmd+k v)或通过菜单选择上下拆分;3. 拖拽文件标签或从侧边栏拖文件至边缘可智能创建新分屏;4. 右键“在新组中打开”可快速并排查看文件;5.…

    2026年9月24日
    100
  • 深入理解 javac 命令中的 ‘当前目录’ 与类路径

    在使用 javac 命令进行 Java 编译时,’当前目录’ 指的是执行该命令时所在的目录,而非源代码文件或 Java 安装路径所在的目录。这对于默认类路径(.)的解析至关重要,影响编译器查找依赖类文件的位置。理解这一概念有助于避免编译错误,并正确配置类路径。 什么是“当前目…

    2026年9月24日
    100
  • 如何监控Linux进程内存泄漏 pmap与valgrind工具使用

    如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用如何监控Linux进程内存泄漏 pmap与valgrind工具使用

    要监控linux进程的内存泄漏,首先使用pmap观察内存增长趋势,再用valgrind定位具体泄漏点。一、使用pmap -x 查看进程内存映射,重点关注anon列和总内存变化,通过定期刷新判断是否存在异常增长;二、利用valgrind –leak-check=full启动程序,分析报告中…

    2026年9月24日 用户投稿
    100
  • DeepCode— 港大实验室推出的多Agent代码生成平台

    DeepCode— 港大实验室推出的多Agent代码生成平台DeepCode— 港大实验室推出的多Agent代码生成平台DeepCode— 港大实验室推出的多Agent代码生成平台DeepCode— 港大实验室推出的多Agent代码生成平台

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ MiniMax Agent MiniMax平台推出的Agent智能体助手 334 查看详情 DeepCode是什么 deepcode是由香港大学数据智能实验室研发的一款基于多智能体架构的智能代码…

    2026年9月24日 用户投稿
    200
  • 时区错误怎样校准?时间同步完整解决方法

    时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法时区错误怎样校准?时间同步完整解决方法

    时区错误和时间同步问题通常由系统时区设置错误、硬件时钟漂移或ntp服务异常导致。1.确保系统时间通过ntp服务准确同步,linux可使用timedatectl检查ntp状态并启用systemd-timesyncd或chronyd,windows则开启自动时间同步;2.正确设置本地时区,linux使用…

    2026年9月24日 用户投稿
    200
  • VSCode如何实现代码模式识别 VSCodeAI辅助重构的智能技巧

    ai辅助重构在vscode中依赖lsp解析代码结构并结合ai模型识别模式,1. 首先通过语言服务器协议(lsp)构建抽象语法树,获取变量、函数、作用域等语义信息;2. 然后利用大型语言模型(如github copilot)基于上下文和训练数据预测重构建议;3. 用户可通过右键菜单或快捷键(ctrl+…

    2026年9月24日
    900
  • FramePackLoop— AI视频生成工具,首尾连接生成循环视频

    FramePackLoop— AI视频生成工具,首尾连接生成循环视频FramePackLoop— AI视频生成工具,首尾连接生成循环视频FramePackLoop— AI视频生成工具,首尾连接生成循环视频FramePackLoop— AI视频生成工具,首尾连接生成循环视频

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Q.AI视频生成工具 支持一分钟生成专业级短视频,多种生成方式,AI视频脚本,在线云编辑,画面自由替换,热门配音媲美真人音色,更多强大功能尽在QAI 73 查看详情 FramePackLoop是…

    2026年9月24日 用户投稿
    200
  • Flyway多数据库与多环境配置:实现测试与生产环境的灵活迁移管理

    本文深入探讨了Flyway在多数据库和多环境场景下的灵活配置策略,旨在解决开发、开发、测试与生产环境数据库迁移的挑战。文章首先分析了测试环境数据库选择的推荐方案,包括使用与生产一致的数据库服务或Testcontainers。随后,详细阐述了Flyway如何通过分离配置文件、编程化配置以及利用占位符来…

    2026年9月24日
    100
  • Linux目录结构和文件属性管理

    一、fhs概述 文件系统层次化标准(Filesystem Hierarchy Standard,简称FHS)是Linux系统中常用的文件组织方式,类似于Windows中的C盘目录结构。FHS采用树形结构来组织文件,定义了系统中各个区域的用途、最小构成文件和目录,并提供例外处理与矛盾处理的指导。 FH…

    2026年9月24日
    000
  • 如何在Linux中设置文件默认权限?

    umask机制用于设置Linux文件默认权限,通过八进制值从基础权限666(文件)或777(目录)中减去对应权限位,如umask 022时文件为644、目录为755;可临时执行umask命令或在~/.bashrc、/etc/profile等配置文件中永久设置,修改后需重新登录或source生效,过严…

    2026年9月24日
    200
  • VS Code微服务开发:Docker与Kubernetes集成

    VS Code通过Docker扩展实现本地容器化开发,支持自动生成Dockerfile、一键构建镜像及devcontainer环境一致性;2. Kubernetes扩展可连接集群并管理资源,结合Bridge to Kubernetes实现本地调试与集群网络集成;3. 使用Skaffold自动化构建部…

    2026年9月24日
    100
  • 如何查找Linux软件包提供文件 yum provides和apt-file使用

    如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用如何查找Linux软件包提供文件 yum provides和apt-file使用

    在 linux 系统中,若需查找文件归属的软件包,可使用 yum provides(适用于 red hat 系列)或 apt-file(适用于 debian/ubuntu)。1. 在 red hat、centos 或 fedora 中,使用 yum provides 文件名 或 dnf provid…

    2026年9月24日 用户投稿
    000
  • ​​VSCode的进阶玩法!这些快捷键组合让你秒变编程大神​​

    要高效利用vscode进行代码导航,1. 使用ctrl + p / cmd + p快速打开文件;2. 使用ctrl + shift + o / cmd + shift + o定位文件中的符号;3. 使用ctrl + – / cmd + -后退,ctrl + shift + –…

    2026年9月24日
    700
  • Intel OpenCAS缓存加速方案

    open cas 架构概览:数据从hdd盘读取后被复制到open cas的缓存中,后续的读取操作从内存中进行,从而提高读写效率。在write-through模式下,所有数据同步刷新到open cas的ssd和后端的hdd中。在write-back模式下,数据同步写入到open cas的ssd中,然后…

    2026年9月24日
    500
  • 如何通过日志排查权限问题

    排查权限问题需从日志入手,重点分析时间、用户、资源路径、拒绝原因及调用堆栈。首先检查应用日志中“用户无权访问”等提示,结合Web服务器日志中的403/401状态码定位请求异常;再查看操作系统日志如/var/log/secure中SSH或sudo拒绝记录,确认系统级权限问题;同时审查中间件如Sprin…

    2026年9月24日
    100
  • VSCode如何配置.NET开发环境 VSCode搭建.NET项目的完整流程

    首先安装.net sdk并验证版本;2. 安装vscode及microsoft官方c#扩展,确保智能感知和调试功能正常;3. 通过dotnet new命令创建项目,并使用code .在vscode中打开项目;4. 添加构建和调试资产以生成tasks.json和launch.json文件;5. 安装n…

    2026年9月24日
    100
  • hive安装配置实验

    一、安装前的准备工作 1. 配置并安装hadoop,请参考链接http://blog.csdn.net/wzy0623/article/details/50681554。 2. 下载以下安装包:mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz、apache-hive…

    2026年9月24日
    700
  • VSCode 怎样配置终端默认路径 VSCode 终端默认路径的配置技巧​

    在 vscode 中配置终端默认启动路径需修改 terminal.integrated.cwd 设置项;2. 可通过用户设置(全局生效)或工作区设置(项目专属)进行配置,优先级为工作区设置覆盖用户设置;3. 路径可使用绝对路径或相对路径(推荐相对路径以提升协作性),windows 系统需注意反斜杠转…

    2026年9月24日
    100

发表回复

登录后才能评论
关注微信