linux中vim的工作模式

本文介绍了Vim编辑器的基本操作,包括工作模式切换、文本的插入与删除、光标的移动、缓冲区的使用以及搜索替换等功能。适用于初学者快速上手。

vim的工作模式

vim有三种工作模式, 用户可以自由切换

  • 命令模式(Command): vi/vim的默认模式, 输入命令
    • –从其它模式切换到命令模式: <ESC>键
    • –很多命令以冒号(:)开始, 命令后加叹号表示强制执行
    • –命令前可以跟数字n表示重复该命令n次
  • 插入模式(Insert): 插入文本
    • –从命令模式, 通过命令 i I a A o O s S 等进入
  • 普通模式(normal)或者可视模式(Visual): 高亮并选定正文
    • –从命令模式, 通过命令v 切换, 移动光标选定, x删除一个字符,dd删除一行字符,J可以把两行合并为一行,也就是说两行之间的换行符被删除或者 y 复制
  • 如果不晓得现在是处於什麽模式,可以多按几次 [ESC],系统如发出哔哔声就表示已处于指令模式下了。

进入和退出vim

  • 进入: 在命令行下输入 vi 或者 vi filename (如果filename不存在则创建,存在则打开)
  • 退出: 在命令模式下输入
:wq   保存并退出 :wq!  强制保存并退出 :q      退出 :q!     强制退出 :x      如果有改动则保存并退出, 否则直接退出 :w filename     另存为filename :e     重新读入当前文件

插入文本

  • 在命令模式下,输入下述命令进入插入模式,开始插入文本
i 在光标前插入 I 在本行最后插入 a 在光标后插入 A 在本行开头插入 o 在当前行下方插入 O 在当前行上方插入 cw 改变光标开始的那个单词 C 替换自光标至行尾的文本 s 替换当前位置的字符 S 替换当前行 r 以单个字符替换当前字符 R 自光标开始替换

删除文本

  • 进入命令模式<ESC>,输入下述命令删除文本

 x 删除当前光标所在字符 4x 删除自当前光标开始的4个字符 dw 删除自当前光标位置开始的单词 dd 删除当前行 10dd 删除当前光标位置开始10行 d$ 删除当前光标位置至行尾的文本 dG 删除当前光标位置至文件尾的文本 :n,m d 删除n行到m行的文本 :.,+5 d 删除当前行开始的5行文本

注意: 上述被删除的文本都存放在临时缓冲区中, 可以通过 p 命令粘贴到当前光标位置

移动光标

进入命令模式<ESC>,移动光标

h 光标左移一个字符 l 光标右移一个字符 j 光标下移一行 k 光标上移一行 w 光标前移到下一个单词开始 b 光标后移到下一个单词开始 10g 光标到第10行
w 光标前移到下一个单词开始 b 光标后移到下一个单词开始 10g 光标到第10行

xg光标移动到第几行
gg光标移动到第一行 G 光标到最后一行 % 移动光标到匹配的另一半括号

缓冲区

  • 复制或删除的内容总是先存放在缓冲区中,缺省是放在匿名缓冲区中,例如
yy 将当前行复制到缓冲区 yw 将光标开始单词复制到缓冲区 yh 将光标左边的字符复制到缓冲区 p 将缓冲区内容粘贴到光标前 P 将缓冲区内容粘贴到光标后

命名缓冲区: a-z (替换), A-Z (附加)

  • a-z缓冲区,内容每次复制进来时会替换掉原有内容
  • A-Z缓冲区,内容每次复制进来时被附加在原有内容后
"ayy 将当前行内容复制到a 缓冲区 "a10yy 将当前开始的10行内容复制到a 缓冲区 "ap 将a 缓冲区的内容粘贴在当前光标前 "Add 将当前行删除, 内容附加到A 缓冲区

搜索与替换

  • 在命令模式下输入下述命令搜索文本,注意vi用的是正则表达式,意味着输入 1+1会匹配 1111111,而不会匹配"1+1"

:set ignorecase 表示搜索时忽略大小写的

用/命令进行搜索
/regexp 向前搜索匹配regexp的字符串 n 继续搜索 N 反向搜索 ?regexp 向后搜索匹配regexp的字符串 :s/regexp/s2 将本行第一个匹配regexp的字符串替换为s2 :s/regexp/s2/g 将本行所有匹配regexp的字符串替换为s2 :1,$ s/regexp/s2/g 将文件中所有匹配regexp的字符串替换为s2

其它

u 取消上次命令
CTRL-R (重做)来反转撤消的动作。换句话说,它是对撤消的撤消。 J 当前两行合并成1行 << 当前行左缩进一个tab 10>> 当前行开始的10行右缩进一个tab :set 查看/修改当前设置 :help 寻求帮助
<think>嗯,用户想知道如何在Linux中使用Vim编辑器。首先,我需要回忆一下Vim的基本知识。Vim有几种模式,对吧?命令模式、插入模式和末行模式。用户可能刚接触Vim,所以得先解释这些模式的区别和切换方法。 我记得用户第一次用Vim可能会遇到不知道怎么输入或者退出的问题,所以得详细说明如何进入插入模式,比如按i,然后退出保存。另外,基本的光标移动命令也很重要,比如h、j、k、l这些,虽然用户可能更习惯用方向键,但传统方法还是得提一下。 然后,常用操作比如复制、粘贴、删除这些命令,比如yy和p,dd这些,得列出来。文件操作部分,保存和退出在末行模式,需要输入:wq或者:q!,这些是基础中的基础,必须提到。 配置部分,用户可能想知道为什么需要配置,比如界面不好看或者缺少代码补全。引用里的内容提到配置的原因,可以结合引用2的内容,说明配置的好处,比如高亮显示和代码补全。还可以推荐一些配置方法,比如直接使用现成的配置或者插件管理工具,比如Vundle。 另外,常见问题解答可能对用户有帮助,比如误入其他模式怎么办,或者如何搜索替换。这些可以放在最后,帮助用户解决实际使用中的困惑。 需要注意,用户可能分不清模式和对应的操作,所以每个部分的结构要清晰,步骤明确。还要确保所有的LaTeX格式正确,虽然这里可能用不上数学公式,但如果有相关例子的话要检查格式。引用部分要正确标注,比如引用1、2、3的来源,末尾自然地加上标识符。 最后,生成的相关问题要覆盖用户可能进一步想了解的内容,比如模式切换、配置必要性、插件安装、退出保存命令、复制粘贴方法、Vim与其他编辑器的比较,以及解决无法退出的问题。这些问题应该能帮助用户深入学习和解决问题。</think>### 如何在Linux中使用Vim编辑器? #### 一、Vim的三种工作模式 1. **命令模式(默认模式)** 启动Vim时自动进入命令模式,所有输入会被当作指令处理。常用操作包括: - 移动光标:`h`(左)、`j`(下)、`k`(上)、`l`(右)或方向键 - 复制:`yy`(复制当前行)、`3yy`(复制3行) - 粘贴:`p`(在光标后粘贴) - 删除:`dd`(删除当前行)、`x`(删除单个字符) - 撤销/重做:`u`(撤销)、`Ctrl + r`(重做) 2. **插入模式** 按 `i`、`a`、`o` 等键进入插入模式,此时可自由编辑文本: - `i`:在光标前插入 - `a`:在光标后插入 - `o`:在当前行下方插入新行 3. **末行模式** 在命令模式下按 `:` 进入末行模式,支持文件操作和配置命令: - 保存并退出:`:wq` - 强制退出不保存:`:q!` - 显示行号:`:set number` - 全局替换文本:`:%s/old/new/g` [^3] --- #### 二、基础使用流程 1. **打开/新建文件** ```bash vim filename.txt # 打开或新建文件 ``` 2. **编辑文件** - 按 `i` 进入插入模式,输入文本 - 按 `Esc` 返回命令模式 3. **保存与退出** - 命令模式下输入 `:w` 保存,`:wq` 保存并退出 - 强制操作加 `!`,如 `:q!` --- #### 三、配置Vim提升体验 1. **配置必要性** - 默认界面无代码高亮、自动补全 - 缺少实用插件(如文件树、语法检查)[^2] 2. **快速配置方法** - 使用现成配置(如 [spf13-vim](https://github.com/spf13/spf13-vim)): ```bash curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh ``` - 手动配置 `~/.vimrc`: ```vim syntax on " 启用语法高亮 set tabstop=4 " 设置制表符宽度 set expandtab " 将制表符转换为空格 ``` 3. **插件管理(推荐Vundle)** ```vim " 在.vimrc中添加 set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' " 插件示例 call vundle#end() ``` --- #### 四、常见问题解答 1. **误入其他模式如何退出?** 连续按 `Esc` 可返回命令模式。 2. **如何搜索文本?** 命令模式下按 `/` 输入关键词,按 `n` 跳转到下一个匹配项。 3. **为什么配置不生效?** 检查配置文件路径是否为 `~/.vimrc`,重启Vim后生效。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值