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

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

时间:2025-01-14 10:28:37浏览次数: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/145132202

相关文章

  • Linux网络编程4——系统编程
    一.电脑知识1.电脑基础CPU:相当于大脑,核心处理器内存条:存放临时数据,相当于人体的临时记忆磁盘:存放长时间数据,相当于人体的长时间记忆显卡:将各种影像输出的装置主板:将所有的零件存储起来2.磁盘磁盘要放入计算机且被Linux系统识别,到可以使用磁盘存储数据,过程如下:1.磁盘......
  • Linux系统中解决端口占用问题
    在日常的Linux系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在Linux系统中如何识别和解决端口占用问题,帮助你高效地管理系统资源。一、常见的......
  • Windows 与 Linux 程序员的区别
    如果一个程序员从来没有在Linux,Unix下开发过程序,一直在Windows下面开发程序,同样是工作10年,大部分情况下与在Linux,unix下面开发10年的程序员水平会差别很大。这篇文章并不是想贬低Windows下面开发的人,做Windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的......
  • c语言——【linux】多线程编程 (内附练习及代码)
    1:开启一个线程主线程中:使用标准IO,向一个文件中写入任意数据分支线程:使用标准IO,读取该文件中的数据#include<stdio.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<p......
  • Linux操作命令之网络管理
    一、网络基础命令1、查看网络信息[root@controller~]#ipaddrshow1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8scopehostlo......
  • Linux基础
    Linux常见命令:    ls命令:        ls功能:查看当前目录下的所有文件            蓝色文件:目录文件(文件夹)             白色文件:普通文件(文本文件)        ls-a功能:查看当前目录......
  • linux服务器: Shell文件,注释,变量
    Shell文件Shell是一个用户跟操作系统之间的一个命令解释器创建shell文件编写内容#!/bin/bash:这是一个shebang行,告诉系统这个脚本应该使用bashshell来执行。#是一个注释字符,用于说明这行的作用。echo命令,用于在终端输出文本执行脚本1.给文件执行......
  • 嵌入式Linux SPI子系统驱动 通信协议原理 硬件 时序 深度剖析
    SPI(SerialPeripheralInterface,串行外设接口)是一种同步的串行通信协议,通常用于微控制器和外部设备(如传感器、存储器、显示屏等)之间的高速数据传输。SPI协议由主设备(Master)和从设备(Slave)组成,主设备发起通信并控制时序,而从设备根据主设备的指令进行响应。SPI使用4根信号线进行......
  • 【Linux】Linux常见指令(下)
    个人主页~Linux常见命令(上)~初识Linux一、Linux基本命令11、cat命令12、more指令13、less指令14、head指令15、tail指令16、时间相关的指令(1)date指令(2)cal指令17、find指令18、grep指令19、压缩相关指令(1)zip、unzip指令(2)tar指令20、bc指令一、Linux基本命令i=1......
  • linux常用命令(2)[常用快捷键, clear, date, ping, ps, kill, man, help, info ]
    常用快捷键清空命令行界面  clear示例显示时间 datedate和date-R命令的区别如下"CST"表示"ChinaStandardTime",即中国标准时间中国标准时间是协调世界时(UTC)的东八区时间,也就是UTC+8:00网络测试命令  ping用于测试主机之间网络的连通性上面的截图......