Linux vim
Linux vim
一、Vim的详细介绍
1.1 Vim的历史与背景
Vim(Vi Improved)是基于Vi编辑器开发的增强版。Vi由Bill Joy于1976年为Unix系统创建,而Vim由Bram Moolenaar在1991年首次发布,最初是为了改进
Linux vim
1.1 Vim的历史与背景
Vim(Vi Improved)是基于Vi编辑器开发的增强版。Vi由Bill Joy于1976年为Unix系统创建,而Vim由Bram Moolenaar在1991年首次发布,最初是为了改进Vi的功能并使其适用于更多场景。Vim不仅保留了Vi的高效性和轻量化,还增加了脚本支持、多级撤销、语法高亮等功能。如今,Vim已成为Linux用户、程序员和系统管理员的标配工具,尤其在无图形界面的服务器环境中表现出。
1.2 Vim的核心优势
- 模态设计:通过区分导航(正常模式)和编辑(插入模式),减少了操作冗余。
- 键盘效率:所有功能通过快捷键实现,双手无需离开键盘。
- 可定制性:支持脚本语言(Vimscript)和插件,满足个性化需求。
- 资源占用性:即使在低配服务器上也能流畅运行。
1. Vim的安装与验证
在Linux系统中,Vim通常默认安装,但可能是精简版(vim-tiny
)。若需完整版:
- Debian/Ubuntu:
sudo apt install vim
- Fedora:
sudo dnf install vim-enhanced
- Arch:
sudo pacman -S vim
- 验证版本:
vim --version
,检查是否支持特性如python
(插件支持)。
启动方式
- vim:空白编辑器。
vim
:编辑指定文件。vim -R
:只读模式。vim 10
:打开文件并跳转到第10行。
2.1 Vim的模式详解
Vim的模态设计是其核心,以下是每种模式的详细说明:
- 正常模式(ormal Mode):
- 默认进入模式,用于导航、删除、复制等。
- 进入方式:启动Vim后默认,或从其他模式按
Esc
。 - 示例:移动光标(
h/j/k/l
)、删除行(dd
)。
- 插入模式(Insert Mode):
- 用于输入文本。
- 进入方式:
i
(光标前插入)、I
(行首插入)、a
(光标后插入)、A
(行尾插入)、o
(下行插入)、O
上行插入。 - 示例:按
i
输入Hello
,按Esc
返回正常模式。
- 可视模式(Visual Mode):
- 用于选择文本
- 进入方式:
v
:字符选择V
:行选择Ctrlv
:块选择
- 示例:按
v
,用h/l
选择字符,按d
删除。
- 命令模式(Command Mode)
- 用于执行复杂命令,如保存、退出、设置选项。
- 进入方式:从正常模式按
:
。 - 示例:
:set nu
(显示行号)、:w
(保存)。
2.2 基本导航
- 光标移动
h/j/k/l
:左/下/上/右w
:下一个单词开头,b
:上一个单词开头,e
:单词结尾0
:行首,^
:第一个非空字符,$
:行尾。gg
:文件开头,G
:文件结尾,10G
:第10行。
- 翻页
Ctrlf
:下一页,Ctrlb
:上一页。Ctrld
:下一页,Ctrlu
:上半页。
2. 文本编辑
- 插入:
i/a/o
(如上所述)。 - 删除:
x
:删除光标下字符,X
:删除光标前字符。dd
:删除整行,dd
:删除行。dw
:删除到单词结尾,d$
:删除到行尾。
- 修改:
r
:替换光标下字符(如ra
将当前字符替换为a
)。c
:删除并进入插入模式(如cw
)删除单词并插入。
- 撤销与重做:
u
:撤销上一次操作。Ctrlr
:重做。
2.4 文件操作
:w
:保存。:w new
:另存为。:q
:退出。:q!
:强制退出不保存。:wq
或ZZ
:保存并退出。
示例1:创建一个配置文件
假设我们要创建一个简单的Bash脚本myscript.sh
:
-
启动Vim:
vim myscript.sh
-
进入插入模式:
i
-
输入以下内容:
#!/bin/bash echo Hello,Vim ! for i in {1..5};do echo Line $i done
-
返回正常模式:
Esc
-
保存并退出:
wq
示例2:修改多行内容
打开myscript.sh
,假设需要将Line
改为Row
:
- 搜索:
/Line
- 替换:
- 当前行:
:s/Line/Row
- 全局:
:%s/Line/Row/g
- 当前行:
- 保存:
:w
示例:块操作
假设文件内容如下:
ame: Alice
Age: 25
City: ew York
将值对其:
- 进入块可视模式:
Ctrlv
- 移动光标选择
Alice
、25
、ew York
的开头。 - 按
I
,输入空格(对齐),按Esc
。
4.1 多窗口与标签页
- 窗口管理
:sp
:水平分割打开新文件vsp
:垂直分割Ctrlw w
:循环切换窗口Ctrlw c
:关闭当前窗口
- 标签页管理:
:tabnew
:新标签页tabclose
:关闭当前标签tabn
:下一标签,:tabp
:上一标签
- 示例:同时编辑个文件:
vim
:sp
tabnew
4.2 搜索与替换
- 高级搜索:
/\<word\>
:精确匹配单词/pattern\c
:忽略大小写
- 高级替换:
:%s/old/new/gc
:每次替换需确认:%s/\(\d\\)/\11/g
:将数字加1(正则捕获组)
- 示例:将
test1 test2 test
改为Test1 Test2 Test
:
:%s/\(\w\\)/\u\1\g
4. 宏录制与批量操作
-
详细步骤:
qa
:录制寄存器a
。- 执行操作(如
I# Esc j
)。 q
:结束。5@a
:对5行执行。
-
示例:为10行文本添加行号:
- 文件内容:
apple banana cherry
qa
->I1. Esc j
->q
j qa
->I2. Esc j
->q
- 手动重复,或用脚本优化。
4.4 自定义配置(.vimrc)
详细配置示例:
set number relativenumber 显示绝对和相对行号
set tabstop=4 shiftwidth=4 expandtab Tab为4空格
set hlsearch incsearch 高亮搜索,增量搜索
set ignorecase smartcase 搜索大小写智能处理
syntax enable 语法高亮
colorscheme desert 设置主题
nnoremap <F5> :w<CR>:!python %<CR> F5运行Python文件
4.5 插件生态
- 安装vim-plug
- 推荐插件:
ERDTree
:文件浏览器(:ERDTreeToggle
)。vim-surround
:快速包围文本(如ysiw
加引号)。fzf.vim
:模糊搜索(:Files
)。
- 示例:安装ERDTree:
- 在
.vimrc
添加Plug scrooloose/nerdtree
:PlugInstall
- 在
5.1 编程支持
- 代码折叠:
zf
:折叠选中区域。zo
:展开,zc
:关闭。
- 语法检查:安装
ALE
插件(Plug dense-analyse/ale
)。
5.2 日志分析
- 搜索错误:
/ERROR
- 过滤行:
:g/ERROR/p
5. 配置管理
- 编辑
,用
:%s/listen 80/listen 8080/g
批量修改端口。
Vim的强大在于其灵活性和高效性。通过基础操作的熟练掌握、高级功能的活用以及个性化配置,用户可以在Linux环境下极大提升工作效率。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-18 09:44:48
推荐阅读
留言与评论(共有 13 条评论) |
本站网友 警校招生 | 29分钟前 发表 |
示例:安装ERDTree: 在.vimrc添加Plug scrooloose/nerdtree | |
本站网友 广州公寓出租 | 1分钟前 发表 |
可视模式(Visual Mode): 用于选择文本进入方式: v:字符选择V:行选择Ctrlv:块选择 示例:按v,用h/l选择字符,按d删除 | |
本站网友 md5验证工具 | 6分钟前 发表 |
%s/old/new/gc:每次替换需确认 | |
本站网友 北约组织 | 17分钟前 发表 |
set nu(显示行号) | |
本站网友 中国军魂 | 15分钟前 发表 |
%s/\(\w\\)/\u\1\g 4. 宏录制与批量操作 详细步骤: qa:录制寄存器a | |
本站网友 滴虫性阴炎 | 0秒前 发表 |
vim 10 :打开文件并跳转到第10行 | |
本站网友 3p3 | 20分钟前 发表 |
若需完整版: Debian/Ubuntu:sudo apt install vimFedora:sudo dnf install vim-enhancedArch:sudo pacman -S vim验证版本:vim --version,检查是否支持特性如python(插件支持) | |
本站网友 大肠杆菌培养 | 1分钟前 发表 |
PlugInstall 五 | |
本站网友 rotate3d | 25分钟前 发表 |
示例:移动光标(h/j/k/l) | |
本站网友 小米手机维修 | 18分钟前 发表 |
插入模式(Insert Mode): 用于输入文本 | |
本站网友 跑赢大盘 | 29分钟前 发表 |
三 | |
本站网友 大宗商品定价权 | 20分钟前 发表 |
vim-surround:快速包围文本(如ysiw加引号) |