首页 > 系统相关 >【linux】文件与目录命令 - vim

【linux】文件与目录命令 - vim

时间:2025-01-22 11:31:14浏览次数:3  
标签:文件 模式 vim 插入 file linux 目录 光标

文章目录


vim 是一款功能强大的文本编辑器,适用于代码编辑和日常文本处理。它是 vi 的增强版,支持多种模式(如普通模式、插入模式和命令模式)以及插件扩展。

1. 基本用法
  • 语法:

    vim [选项] [文件]
    
  • 功能:

    • 编辑文本文件,包括代码、配置文件等。
    • 提供语法高亮、多级撤销、搜索替换等高级功能。
  • 此命令是否系统自带:大多数 Linux 发行版默认带有 vi命令,但 vim 一般需要手动安装:

    • Debian/Ubuntu:

      sudo apt install vim
      
    • CentOS/RHEL:

      sudo yum install vim
      
    • Alpine:

      sudo apk add vim
      

2. 常用参数
  • -v:以普通模式启动(默认模式)。

  • -R:以只读模式打开文件。

  • -n:不使用交换文件(防止保存时生成 .swp 文件)。

  • -o:水平分割窗口,打开多个文件。

    vim -o file1 file2
    
  • -O:垂直分割窗口,打开多个文件。

    vim -O file1 file2
    
  • -c <命令>:在打开文件时执行指定的 Vim 命令。

    vim -c "set number" file.txt
    
  • -u <配置文件>:使用指定的配置文件,而非默认的 ~/.vimrc

  • -y:以易用模式启动(适用于新手)。


3. 用法举例
  • 普通模式启动

    vim file.txt
    

    编辑 file.txt 文件,进入普通模式。

  • 打开多个文件

    vim -o file1 file2
    

    水平分割窗口,打开 file1file2

  • 以只读模式打开文件

    vim -R file.txt
    

    防止意外修改文件内容。

  • 直接搜索关键词

    vim +/keyword file.txt
    

    打开文件并跳转到包含 keyword 的第一处。

  • 执行 Vim 命令后退出

    vim -c "set number" -c "wq" file.txt
    

    打开文件,启用行号显示,并保存退出。


4. 多种模式

普通模式

普通模式是 Vim 的默认模式,用于文本浏览、操作和编辑,按 ESC 可随时返回此模式。

  • 移动光标
    • h:左移一格
    • l:右移一格
    • j:下移一行
    • k:上移一行
    • 0:移动到行首
    • ^:移动到当前行的第一个非空字符
    • $:移动到行尾
    • G:移动到文件末尾
    • gg:移动到文件开头
    • w/W:移动到下一个单词的开头
    • e/E:移动到当前或下一个单词的结尾
    • b/B:移动到上一个单词的开头
  • 编辑操作
    • i:进入插入模式,从光标前开始插入
    • a:进入插入模式,从光标后开始插入
    • o:在光标下方插入新行并进入插入模式
    • x:删除光标所在字符
    • dd:删除当前整行
    • yy:复制当前行
    • p:粘贴在光标后
    • u:撤销上一步操作
    • Ctrl+r:恢复撤销的操作
  • 搜索和替换
    • /pattern:向下搜索 pattern
    • ?pattern:向上搜索 pattern
    • n:重复上一次搜索
    • :%s/foo/bar/g:将全文件中的 foo 替换为 bar

插入模式

插入模式用于输入文本,按 iao 等可进入,按 ESC 退出。

  • 插入位置切换命令
    • i:从光标位置插入
    • I:从行首插入
    • a:从光标后插入
    • A:从行尾插入
    • o:在当前行下插入新行
    • O:在当前行上插入新行
  • 光标控制
    • Arrow keys:上下左右移动光标
    • Backspace:删除前一个字符
    • Delete:删除当前字符
  • 快捷操作
    • Ctrl+w:删除光标前一个单词
    • Ctrl+u:删除光标前整行
    • Ctrl+h:删除光标前一个字符

命令模式

:进入 命令模式,用于执行保存、退出等全局命令。

  • 文件操作
    • :w:保存文件
    • :q:退出文件
    • :wq:xZZ:保存并退出
    • :q!:强制退出,不保存更改
    • :e file:打开指定文件
    • :saveas file:另存为指定文件
    • :r file:读取文件内容到当前光标位置
  • 搜索和替换
    • :s/foo/bar/:替换当前行第一个 foobar
    • :s/foo/bar/g:替换当前行所有 foobar
    • :%s/foo/bar/g:替换全文件的 foobar
    • :%s/foo/bar/gc:替换全文件的 foo,替换前询问确认
  • 窗口管理
    • :split file:sp file:水平分割窗口打开文件
    • :vsplit file:vs file:垂直分割窗口打开文件
    • Ctrl+w h/j/k/l:在分割窗口间移动
    • :close:关闭当前窗口
    • :only:关闭其他所有窗口
  • 显示和设置
    • :set number:显示行号
    • :set nonumber:隐藏行号
    • :set syntax=on:启用语法高亮
    • :set nowrap:禁用自动换行

块选泽模式(V模式)

V 模式是 Vim 中的一种可视模式,用于按行选择文本块,方便进行批量删除、复制、粘贴等操作。通过进入 V 模式,可以快速对选定的整行范围进行编辑

  • 命令说明
    • 进入 V 模式:普通模式下按 V,当前光标所在行被高亮显示。
    • 退出 V 模式:按 Esc 键。
  • 常用操作
    • 批量选中行:按 jk 键向下或向上扩展选中范围(上下方向键也可以)。
    • 删除选中行:按 d
    • 复制选中行:按 y
    • 粘贴复制内容:退出 V 模式后,在目标位置按 pP
    • 批量注释内容
      • ctrl + v 进入V模式。
      • 光标移动到行首
      • 上下键或jk键选中需要注释的行。
      • 按大写 I (shift + i 进入插入模式,输入注释符 (#)。
      • 按两次 ESC 退出,即完成添加注释。
      • 再输入 :wq 保存退出
    • 格式化选中行:按 =(适用于代码格式调整)。

5. 注意事项
  • 三种模式的切换

    • ESC 随时返回普通模式。
    • 在普通模式下,使用 iao 等进入插入模式。
    • 在普通模式下,按 : 进入命令模式。
  • 保存退出时注意权限
    如果编辑文件无写权限,可以使用:

    :w !sudo tee %
    
  • 熟练掌握快捷键

    • 普通模式快捷键如 yyddp 可以极大提高效率。
    • 命令模式中,:help <command> 可查看具体命令的详细帮助。

标签:文件,模式,vim,插入,file,linux,目录,光标
From: https://blog.csdn.net/qq_62294245/article/details/145289589

相关文章

  • Linux事件循环
    在Linux中,事件循环是一种编程模式,通常用于处理并发事件或异步操作。它的核心思想是,程序在一个主循环中不断检查事件队列,处理这些事件并执行相应的操作,而不是阻塞等待每个操作完成。事件循环在很多高性能网络服务器和异步I/O框架中得到了广泛应用。事件循环的基本原理:事件检测:事......
  • 腾讯通RTX停更后升级路径,兼容移动端和Linux系统
    一、腾讯通RTX继续使用的核心痛点随着腾讯通RTX停止更新并下架官网,用户无法再获得技术支持、版本更新和资源下载服务,日常办公面临诸多不便。以下几个问题尤为突出:●不兼容国产系统与移动端:腾讯通RTX仅支持Windows和Mac系统,无法运行在统信UOS、银河麒麟等国产操作系统和Android......
  • Linux部署Python Web服务
    以下展示了在Linux上部署Flask应用时,使用 Nginx和Gunicorn 配合的两种绑定方式:绑定端口 和 绑定UNIX套接字(.sock) 的完整流程。1.准备工作确保已经安装以下组件:sudoaptupdatesudoaptinstallpython3python3-pippython3-venvnginx创建Flask项目......
  • Linux性能分析
    sudoyuminstall-yepel-releasesudoyumupdate-ysudoyumgroupinstall-y"Developmenttools"sudoyuminstall-yelfutils-libelf-develcmake3gitbisonflexncurses-develsudoyuminstall-yluajitluajit-devel#forLuasupportcurl-LOh......
  • 【Linux网络】深入理解linux内核网络性能优化
    一、网络请求优化1.1减少不必要的网络IO在系统设计与开发过程中,应尽量避免不必要的网络I/O操作,尤其是在可以通过本地进程或内存内完成的场景下,避免使用网络通信来实现。网络虽然是现代分布式系统中的核心组件,能够连接不同模块、简化开发流程,并支持大规模系统的构建,但滥用网络会......
  • 鸟哥linux私房菜笔记(一)
    鸟哥私房菜linux学习笔记(一)之所以学鸟哥linux私房菜这本书,是因为受到多人推荐,本书在业界也一直好评,买来一看,名副其实,从最基础的计算机构成开始讲起,适合爱好者和从业者学习或者深入研究。本书有若干章节,我挑选了部分来学习,重点学习文件管理和shell.第一章linux的起源unix作......
  • windows对文件夹(目录)添加备注信息
    //为目录添加备注信息1.每个目录下都有一个desktop.ini的隐藏文件,该文件内容能够配置该目录的图标,提示信息如果没有,那就对目录更改一下图标,就能自动生成刷新2.在[.ShellClassInfo]下添加"InfoTip=内容"该项即可添加备注信息保存退出,将文件夹的显示信息上勾选备注......
  • HPC[High Performance Computing ] Cluster: Linux(Slurm)vs. Windows HPC Server{renam
    -[slurmhpcclusterinstallation-Search](https://cn.bing.com/search?go=Search&q=slurm+hpc+cluster+installation&qs=n&form=QBRE&sp=-1&lq=0&pq=slurm+hpc+cluster+installation&sc=5-30&sk=&cvid=C4BA3EFE837244CB89D4D49D6DFA......
  • linux kernel端口耗尽优化
     bind()源ip之后,分配端口会有端口耗尽问题。 linuxkernel如何bind()VRF端口上的源IPperf看到如下图:   在bind的时候因为还没有目的ip和port,所以可用端口会很少。socketopt IP_BIND_ADDRESS_NO_PORT 会把分配端口延后至connect阶段,如下图内核代码:/net/ipv4/af_in......
  • LINUX磁盘分区并且挂载
    一、Ubuntu系统1、首先输入命令 ,查看系统版本信息cat/etc/os-release2、查看硬盘情况sudofdisk-lu3、硬盘分区sudofdisk/dev/vdc  n:表示建立新的分区  p:表示主分区  e:表示拓展分区  1:分区号,输入1表示只分一个区  w:保存分区表4......