vim操作命令

news/2024/7/21 15:01:17 标签: vim, 编辑器, linux

基础操作:

Vim(Vi Improved)是一个高效的文本编辑器,它提供了许多快捷键和命令来帮助您更快地编辑文本。以下是一些常用的Vim操作命令:

  1. 模式切换:
  • 普通模式(Normal mode):按 <Esc> 进入
  • 插入模式(Insert mode):按 i 进入
  • 命令行模式(Command-line mode):按 : 进入
  1. 文件操作:
  • 保存文件:在命令行模式下输入 :w
  • 另存为:在命令行模式下输入 :w new_filename
  • 退出Vim:在命令行模式下输入 :q
  • 保存并退出:在命令行模式下输入 :wq
  • 强制退出(不保存):在命令行模式下输入 :q!
  1. 移动光标:
  • 上一行: k
  • 下一行: j
  • 左移一个字符: h
  • 右移一个字符: l
  • 行首: 0
  • 行尾: $
  • 跳转到指定行(行号为N):在命令行模式下输入 :N
  1. 文本编辑:
  • 删除当前字符: x
  • 删除整行: dd
  • 删除当前字符至行尾: D
  • 删除当前字符至行首: d0
  • 剪切(删除并复制)当前行: dd
  • 复制当前行: yy
  • 粘贴到光标后: p
  • 粘贴到光标前: P
  • 撤销上一操作: u
  • 重做上一操作: <Ctrl>+r
  1. 查找与替换:
  • 查找文本:在命令行模式下输入 :/pattern(将 “pattern” 替换为要查找的文本)
  • 查找下一个匹配项: n
  • 查找上一个匹配项: N
  • 全局替换:在命令行模式下输入 :%s/old/new/g(将 “old” 替换为要查找的文本,将 “new” 替换为替换后的文本)

高级操作:

  1. 模式切换
  • i:进入插入模式(在光标位置插入)
  • a:进入插入模式(在光标后插入)
  • o:进入插入模式(在光标下方插入新行)
  • O:进入插入模式(在光标上方插入新行)
  • v:进入可视模式(字符选择)
  • V:进入可视模式(行选择)
  • Ctrl+v:进入可视模式(列选择)
  • ESC:退出当前模式,回到普通模式
  1. 光标移动
  • h, j, k, l:分别向左、下、上、右移动光标
  • w:跳到下一个单词开头
  • b:跳到上一个单词开头
  • e:跳到单词末尾
  • gg:跳到文件开头
  • G:跳到文件末尾
  • ::跳到指定行号(为行号)
  1. 编辑操作
  • dd:删除当前行
  • D:删除从光标处到行尾的内容
  • dw:删除从光标处到单词末尾的内容
  • x:删除光标所在位置的字符
  • u:撤销上次操作
  • Ctrl+r:重做上次撤销的操作
  • y:复制(yank)选中的内容
  • yy:复制当前行
  • p:粘贴到光标后
  • P:粘贴到光标前
  • r:替换光标处字符为
  • R:进入替换模式
  • : s/foo/bar/:将当前行第一个foo替换为bar
  • :%s/foo/bar/g:将全文所有foo替换为bar
  • :%s/foo/bar/gc:替换时进行确认
  • :sort:按字母顺序对选中行排序
  1. 文件操作
  • :w:保存文件
  • :w :另存为
  • :q:退出 Vim
  • :q!:强制退出,不保存更改
  • :wq:保存并退出
  • :x:保存并退出(如果有更改)
  1. 窗口和标签
  • :split :水平分割窗口并打开
  • :vsplit :垂直分割窗口并打开
  • Ctrl+w hjkl:切换到左、下、上、右窗口
  • :tabnew :新建标签页并打开
  • gt:切换到下一个标签页
  • gT:切换到上一个标签页
  • :tabmove :将当前标签页移动到指定位置(为位置)

http://www.niftyadmin.cn/n/319142.html

相关文章

(转载)从0开始学matlab(第1天)—变量和数组

MATLAB 程序的基本数据单元是数组。一个数组是以行和列组织起来的数据集合&#xff0c;并且拥有一个数组名。数组中的单个数据是可以被访问的&#xff0c;访问的方法是数组名后带一个括号&#xff0c;括号内是这个数据所对应行标和列标。标量在 MATLAB 中也被当作数组来处理——…

Python递归树结构,回溯法深度优先、广度优先详解,代码实现

Python实现&#xff0c;递归算法&#xff0c;深度优先、广度优先 其实递归说白了就是循环本身函数&#xff0c;只不过下次循环的输入值是上次循环的结果值。关于递归算法&#xff0c;我经常把它用在搜索、计算中。我们来看一个简单的例子&#xff1a; 计算Demo 要实现1&…

抑梯度异常初始化参数(防止梯度消失和梯度爆炸)

这里设置3种参数初始化的对比&#xff0c;分别是&#xff1a;全初始化为0、随机初始化、抑梯度异常初始化。 首先是正反向传播、画图、加载数据所需的函数init_utils.py&#xff1a; # -*- coding: utf-8 -*-import numpy as np import matplotlib.pyplot as plt import sklea…

Linux -- 进阶 Web服务器 虚拟主机 -- 基于 域名

基于域名的虚拟主机 &#xff1a; 原理 &#xff1a; # 当服务器无法给每个网站都分配一个独立的 IP 地址时&#xff0c;可以通过用户请求的域 名实现不同域名传输不同的网页数据。 域名解析 &#xff1a; 功能 &#xff1a; 域名<>IP &#xff08; 就是 …

国内免费cdn汇总2023最新

内容分发网络简称CDN&#xff0c;其原理大概是将网站内容分发至加速节点&#xff0c;让用户从就近的服务器节点上获取内容&#xff0c;从而提高网站的访问加载速度。大部分服务商&#xff08;如阿里云&#xff0c;腾讯云&#xff0c;京东云等&#xff09;的CDN服务是按使用量收…

Protobuf-net3.2.8中的protogen.exe之使用

目录 protobuf是个好东西 遇到问题 顺便研究一下命令行程序如何调试 protobuf是个好东西 protobuf是一个轻量级的数据格式&#xff0c;相比json&#xff0c;它的数据量为json的1/3&#xff0c;且存储方式为2进制&#xff0c;并进行了压缩&#xff0c;序列化和反序列化更快&…

【CSS系列】第八章 · CSS浮动

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

Android9.0 iptables用INetd实现ip白名单的实现

1.前言 在9.0的系统rom定制化开发中,在system中netd网络这块的产品需要中,会要求设置屏蔽ip地址之内的功能,liunx中iptables命令也是比较重要的,接下来就来在INetd这块实现ip白名单的的相关功能,就是在app中只能允许某个网址上网,就是除了这个网址,其他的都不能上网,最…