百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux vim 操作大集合,Linux运维工程师收藏!

ahcoder 2025-01-24 10:26 22 浏览

Vim是“Vi IMproved”的缩写,即Vi的增强版本。它是一款功能强大的文本编辑器,深受开发者、系统管理员以及其他需要处理大量代码和文本的用户欢迎。Vim以其高效、灵活、多功能的命令模式与丰富的插件支持而著称,是许多Linux环境下默认安装的文本编辑器。

Vim的基本使用

启动和关闭Vim

启动Vim

启动Vim编辑器的方法很简单。只需在命令行中输入vim即可打开Vim。如果要编辑一个特定的文件,可以在命令后加上文件名:

vim filename.txt

这将打开filename.txt文件。如果文件不存在,Vim会创建一个新文件。

退出Vim

退出Vim的方法有很多,根据不同场景选择:

  • :q:退出Vim。如果有未保存的更改,Vim将阻止退出。
  • :q!:强制退出,不保存更改。
  • :wq:保存当前文件并退出。
  • ZZ:在普通模式下,保存并退出。

保存文件

在Vim中,保存文件可以通过命令模式下的:w命令:

:w

这将保存当前修改而不退出Vim。

Vim的工作模式

Vim最独特的功能之一是其多种工作模式,它们设计用于不同的编辑任务,非常灵活。

普通模式

Vim打开后默认处于普通模式。在这个模式下,用户可以移动光标、删除、复制、粘贴文本等。

移动光标的快捷键包括:

  • h:光标左移。
  • j:光标下移。
  • k:光标上移。
  • l:光标右移。

插入模式

插入模式允许用户直接输入文本。在普通模式下,使用一下命令进入插入模式:

  • i:在光标当前位置前插入。
  • I:在当前行的行首插入。
  • a:在光标当前位置后插入。
  • A:在当前行的行尾插入。

进入插入模式后,可以随心所欲地输入文字,按Esc返回普通模式。

命令模式

命令模式用于执行特定命令,可以从普通模式直接进入命令模式,通常通过冒号:打开。常见的命令有:

  • :w:保存文件。
  • :q:退出Vim。
  • :!command:在终端中执行shell命令,command是具体的命令。

可视模式

在普通模式下,按v进入可视模式,方便选择文本区域。可视模式支持对选中文本进行复制、剪切和其他操作。你可以使用快捷键选择文本段,然后执行普通操作,例如删除或复制。

通过不同模式的切换与结合,Vim能实现非常高效的文本编辑。理解和利用这些模式将大大提高工作效率。

文本编辑

在Vim中进行文本编辑是其最常用的功能之一。它提供了多种方法来高效地进行文本的插入、删除、复制、粘贴、查找和替换。

插入和编辑文本

插入文本

进入插入模式后,可以开始直接输入文本。在不同位置插入文本的命令包括:

  • i:在光标当前位置前插入。
  • I:在当前行的行首插入。
  • a:在光标当前位置后插入。
  • A:在当前行的行尾插入。
  • o:在当前行下方插入新行。
  • O:在当前行上方插入新行。

删除文本

Vim提供了多种删除文本的方法,既可以删除单个字符,也可以删除整行或多个单词:

  • x:删除当前光标位置的字符。
  • X:删除光标前的字符。
  • dd:删除当前行。
  • dw:删除一个单词。
  • d$:删除从光标处到行末的所有字符。

复制和粘贴文本

在Vim中,复制的操作称为“Yank”,而粘贴操作称为“Put”:

  • yy:复制当前行。
  • yw:复制一个单词。
  • y$:复制从光标处到行末的文本。
  • p:在光标后粘贴。
  • P:在光标前粘贴。

可以结合可视模式进行更复杂的文本选择,然后执行y复制和d删除。

查找与替换

查找文本

Vim提供了强大的文本搜索功能,可以向前或向后搜索:

  • /pattern:向下搜索pattern
  • ?pattern:向上搜索pattern

使用n跳转到下一个匹配项,使用N跳转到上一个匹配项。

替换文本

Vim中的替换命令:能对当前行、选定范围或整个文件进行替换:

  • :s/old/new/:替换当前行第一个匹配的oldnew
  • :s/old/new/g:替换当前行所有的oldnew
  • :%s/old/new/g:替换全文所有的oldnew
  • :%s/old/new/gc:在全文中搜索所有的old,替换为new时逐个确认。

通过这些文本编辑操作,用户可以灵活而高效地修改文件内容。Vim的这些基本编辑功能为其成为一款多用途的编辑器奠定了基础。

理解和使用Vim的高级特性

除了基本的文本编辑功能,Vim还提供了一系列高级特性,可以显著提高用户的工作效率。

使用寄存器

在Vim中,寄存器是一种可以暂存文本的地方。每当文本被复制或删除时,Vim会将其存入一个寄存器中。了解和利用寄存器可以帮助你在不同文件间高效地复制和粘贴文本。

常见寄存器

  • ":默认寄存器,用于存储最近一次复制或删除的文本。
  • 0:仅用于存储最近一次复制操作的内容。
  • %:当前文件名寄存器,可用于快速插入文件名。

使用寄存器

可以通过在命令前加上"和寄存器名称来引用特定寄存器。例如:

  • y"a:将选中的文本存入寄存器a
  • "ap:从寄存器a粘贴文本。

命名寄存器

用户可以使用字母az作为命名寄存器,在共享文本时非常有用。例如,将文本复制到寄存器b

"byw  # 复制一个单词到寄存器b
"bP   # 从寄存器b中粘贴文本

宏的使用

宏是Vim中一个强大的功能,能够大大简化重复性的编辑任务。通过录制一系列按键并在后续重复执行,可以实现自动化编辑。

录制和执行宏

  • q:开始录制宏到指定寄存器中,例如qa录制到寄存器a
  • 执行完一系列操作后,按q停止录制。
  • @:执行存储在寄存器中的宏。例如,@a执行寄存器a中的宏。
  • @@:执行上一次调用的宏。

示例

假设我们希望在文件的每一行前插入//,可以这样做:

  1. 定位到第一行,按下qa开始录制到寄存器a
  2. 输入I//将注释插入到行首。
  3. 按下Esc退出插入模式。
  4. 输入j移动到下一行。
  5. 按下q结束录制。
  6. 输入100@a执行宏100次。

通过寄存器和宏,用户可以在Vim中高效处理复杂的文本操作。这些高级功能特别适合那些经常需要对大量文本做重复性修改或脚本编辑的用户。

性化设置与插件管理

Vim的强大不仅仅体现在它的编辑功能,还表现在其高度可定制化方面。用户可以通过配置文件进行个性化设置和管理插件,以增强编辑器的功能和适应个人需求。

Vim配置文件(.vimrc)

.vimrc是Vim的配置文件,通常位于用户的主目录中。通过编辑这个文件,可以修改Vim的默认行为和外观。例如,可以调整键绑定、启用语法高亮、设置缩进等。

常用设置

以下是一些常用的.vimrc配置示例:

set number            " 显示行号
syntax on             " 启用语法高亮
set autoindent        " 自动缩进
set tabstop=4         " Tab宽度设为4个空格
set shiftwidth=4      " 使用4个空格进行自动缩进
set expandtab         " 将Tab转换为空格
set hlsearch          " 搜索时高亮显示匹配项
set incsearch         " 增量搜索

以上配置帮助提升日常编辑时的效率和体验。用户可以根据自己的编辑习惯进一步添加或修改其内容。

插件管理

插件可以极大扩展Vim的功能,从代码补全、版本控制集成,到文件浏览器和调试器支持,几乎无所不包。管理插件常见的方式是使用插件管理器。

插件管理器

  • Vundle:早期较流行的插件管理器,使用比较简单。
  • Pathogen:提供了一种加载插件的简便方式,安装和使用较为直观。
  • vim-plug:目前最流行的插件管理器之一,安装插件速度快且支持异步,并且具备易用性和简洁性。

安装和使用vim-plug

首先安装vim-plug:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

然后在.vimrc中使用如下模板来配置插件:

call plug#begin('~/.vim/plugged')

" 在此处添加插件,例如:
Plug 'tpope/vim-fugitive'   " Git插件
Plug 'preservim/nerdtree'   " 文件浏览器插件
Plug 'vim-airline/vim-airline' " 状态栏

call plug#end()

保存并关闭.vimrc文件后,启动Vim并运行:PlugInstall来安装配置的插件。

常用插件

  • NERDTree:一个文件系统浏览器,可以浏览和打开目录中的文件。
  • Vim-Airline:增强的状态/标签栏,提供美观且信息丰富的界面。
  • Fugitive:提供Git集成功能,简化版本控制操作。
  • CtrlP:快速文件打开插件,可以在项目中迅速切换文件。

通过配置.vimrc文件和管理插件,用户可以根据自己的具体需求,打造一个个性化的Vim编辑环境。这些工具和方法为用户提供了强大的灵活性和扩展能力。

相关推荐

真快,iOS 16.4 验证已关闭,但仍然可升级

在4月15日早上时段,苹果正式关闭iOS16.4系统验证,意味着你不能通过电脑端进行降级,意思是,你当前系统大于iOS16.4系统版本,你就不能降级了,已经没办法了。亲自测试,使用iPh...

更新后的Linux内核XZ补丁撤销"Jia Tan"作为维护者的身份

今年3月,Linux内核的XZ嵌入式压缩实现项目从公共领域转为BSD零条款许可,并更新了树内代码。此后,在上游XZ项目中又发现了臭名昭著的XZ后门。随着这些重大问题的解决,Las...

CentOS Stream 10发布:Linux 6.12 LTS内核、GNOME 47登场

IT之家12月14日消息,代号为“Coughlan”的CentOSStream10于12月12日正式发布,生命周期大约为五年,将持续维护到2030年。IT之家援引新闻稿,C...

ToDesk Linux更新发布:新增摄像头、网络诊断

ToDesk更新来了!最新版Liunx-4.3.0.0针对Linux用户上新了摄像头、网络诊断等多种实用功能,大幅提升了用户使用体验。并且ToDesk全面支持国产三大操作系统——麒麟、统信、方德,为L...

时隔两年再更新 Linux Skype Alpha发布

【中关村在线软件资讯】7月14日消息:微软在今天面向Linux用户发布了一个全新的Skype版本——LinuxSkypeAlpha,这也是Linux版Skype在2014年来的首次新版更新。这次更...

Linux4.4 RC1释出 75%是驱动更新(linux rtc驱动)

2015-11-1905:35:00作者:鲁畅4.3稳定版发布已半月有余,本周一,Linux创始人LinuxTorvalds在内核邮件中表示,Linux4.4RC1正式释出。早就有Linux爱...

更新后的 DeviceTree 可让微软 Windows Dev Kit 2023 启动 Linux

微软的WindowsDevKit2023也被称为"ProjectVolterra",它是开发人员为改善ARM上的Windows支持而做出的早期努力,开发人员可以在小尺寸ARMP...

腾讯QQ更新Windows 9.9.16、macOS 6.9.58、Linux 3.2.13

IT之家10月20日消息,腾讯QQ于10月18日更新Windows9.9.16、macOS6.9.58、Linux3.2.13,新增支持在图片查看器中识别二维码等功能。新版...

树莓派OS更新:升级至Linux 6.6 LTS,改善对树莓派5支持

IT之家3月14日消息,树莓派基金会(RaspberryPiFoundation)近日更新了树莓派OS(RaspberryPiOS),虽然还是基于DebianGNU/Linu...

腾讯QQ更新Windows 9.9.15、macOS 6.9.55、Linux 3.2.12

IT之家9月29日消息,腾讯QQ更新Windows9.9.15、macOS6.9.55、Linux3.2.12版本,新增支持设置停靠在桌面边缘时不自动隐藏(Windows)等功能...

Linux 5.17 将实现免重启更新主板 BIOS:利用英特尔 PFRUT 技术

IT之家12月30日消息,根据外媒Phoronix消息,英特尔开源项目的工程师已经准备为Linux5.17引入PFRUT技术,实现免重启更新主板BIOS。这项技术属于ACPI...

Fwupd 2.0.9 引入 EFI 证书洞察:Linux 固件更新更安全、更智能

Firmware更新是保持系统安全和优化性能的重要环节。最近,开源工具Fwupd推出了2.0.9版本,为Linux用户带来了更强大的固件更新功能和改进的用户体验!新版本亮点:更清晰、更高...

linux上将大文件切割成小文件之split命令

说明:很多场景需要拷贝或传输文件时,如果我们需要拷贝的文件太大的话,就需要想办法将其分成小个文件进行拷贝,然后载重新合并。今天介绍split命令格式:split[OPTION][INPUT[...

Linux 入门系列——ACL(linux文件acl)

什么是ACLACL是accesscontrollist(访问控制列表)的缩写。主要的目的是提供在传统的owner,group,other的read,write,execute权限之外的更为细的权限...

基于 Linux 快速搭建企业级 Prometheus 监控系统(实战指南)

一、前言随着系统规模的扩大,运维人员需要及时掌握服务器、应用程序、网络等多方面的运行状态,传统监控工具已难以满足现代化需求。Prometheus作为云原生时代最流行的开源监控系统,具备强大的数据采集...