网站后台地址忘了,苏州app软件开发公司,做电容元器件的网站有哪些,夏天做那些网站能致富文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本… 文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本搜索导航 高级搜索使用正则表达式高亮搜索搜索时忽略大小写 文本替换替换当前行替换整个文件替换时确认 5. 文件操作打开和保存文件打开文件保存文件 多文件编辑打开多个文件分屏操作 6. 配置和个性化vimrc文件配置创建和编辑vimrc文件 常用配置选项行号高亮当前行自动缩进语法高亮搜索高亮忽略搜索大小写智能大小写搜索 安装和管理插件Vundle安装Vundle配置Vundle安装插件 vim-plug安装vim-plug配置vim-plug安装插件 7. 高级技巧宏录制与播放录制宏播放宏 使用寄存器基本使用查看寄存器内容 标签和书签使用标签使用书签 脚本编写编写vim脚本基本示例 8. 常见问题与解决方案常见错误及解决方法1. 文件无法保存2. 插件安装失败3. 语法高亮不起作用4. vim启动慢 社区资源推荐官方文档在线教程社区论坛和讨论插件资源 1. 简介
vi和vim的历史
viVisual editor是1976年由Bill Joy在Unix操作系统上开发的文本编辑器。它是基于ex编辑器的一个可视化模式最初设计的目标是提供一个功能强大且轻量的文本编辑工具。
vimVi IMproved是vi的一个改进版由Bram Moolenaar在1991年发布。vim不仅继承了vi的所有功能还增加了许多新特性使其更加强大和灵活。
vi和vim的区别
功能扩展vim相较于vi增加了许多功能如语法高亮、代码折叠、插件支持、无限制撤销等。跨平台支持vim支持多种操作系统包括Linux、Windows、macOS等而vi主要用于Unix系统。用户体验vim的用户体验更友好提供了更多的配置选项和帮助文档。插件系统vim拥有强大的插件系统用户可以根据需要安装各种插件来扩展其功能。
安装vim
在大多数Linux发行版中vim可能已经预装。如果没有可以通过以下命令安装
Ubuntu/Debian
sudo apt update
sudo apt install vimCentOS/RHEL
sudo yum install vimFedora
sudo dnf install vimmacOS
可以使用Homebrew来安装
brew install vimWindows
可以从Vim官网下载适用于Windows的安装包或者使用Chocolatey进行安装
choco install vim安装完成后可以通过在终端中输入vim来验证安装是否成功。如果看到Vim的启动界面说明安装成功。
2. 基本操作
启动和退出
启动
在终端中输入vim或vi加上文件名来启动编辑器。例如
vim filename.txt如果文件不存在vim会创建一个新文件。
退出
在普通模式下输入以下命令退出vim
:q退出如果有未保存的更改会提示错误:q!强制退出不保存更改:wq 或 :x保存并退出ZZ保存并退出相当于:wq
模式介绍
vim有三种主要模式普通模式、插入模式和命令模式。
普通模式
普通模式是vim的默认模式。在这个模式下你可以进行光标移动、删除文本、复制粘贴等操作。启动vim后默认进入普通模式。
常用的普通模式命令
i进入插入模式:进入命令模式v进入可视模式Esc返回普通模式
插入模式
插入模式用于插入文本。进入插入模式的方法有多种
i在光标前插入a在光标后插入o在当前行下方插入新行I在行首插入A在行尾插入
在插入模式下按Esc键返回普通模式。
命令模式
命令模式用于执行文件操作和设置配置。在普通模式下按:进入命令模式。
常用命令模式命令
:w保存文件:q退出:wq保存并退出:q!强制退出不保存更改:e filename打开文件:set option设置选项例如:set number显示行号
光标移动
基本移动
在普通模式下使用以下键进行基本光标移动
h左移j下移k上移l右移
其他基本移动命令
0移动到行首$移动到行尾w移动到下一个单词的开头b移动到上一个单词的开头gg移动到文件开头G移动到文件结尾
高级移动
高级光标移动命令可以帮助你更高效地导航文件
Ctrl f向下翻页Ctrl b向上翻页Ctrl d向下移动半页Ctrl u向上移动半页nG移动到第n行例如10G移动到第10行:n移动到第n行例如:10移动到第10行fx向右查找字符x光标停在x上Fx向左查找字符x光标停在x上tx向右查找字符x光标停在x前Tx向左查找字符x光标停在x后;重复上一次f、F、t或T命令,反向重复上一次f、F、t或T命令
3. 文本编辑
插入文本
在vim中要插入文本首先需要进入插入模式。以下是几种进入插入模式的方法
i在光标前插入I在行首插入a在光标后插入A在行尾插入o在当前行下方新建一行并插入O在当前行上方新建一行并插入
在插入模式下可以像普通文本编辑器一样输入文本。完成后按Esc键返回普通模式。
删除文本
在普通模式下可以使用以下命令删除文本
x删除光标所在的字符X删除光标前的字符dw删除从光标位置到下一个单词开头的字符d$删除从光标位置到行尾的字符dd删除整行dG删除从光标位置到文件末尾的所有内容
复制和粘贴
在普通模式下可以使用以下命令进行复制和粘贴
yy复制当前行yw复制从光标位置到下一个单词开头的字符y$复制从光标位置到行尾的字符yG复制从光标位置到文件末尾的所有内容p在光标后粘贴P在光标前粘贴
撤销和重做
在普通模式下可以使用以下命令进行撤销和重做
u撤销上一个操作U撤销当前行的所有更改Ctrl r重做上一个撤销的操作
4. 搜索与替换
基本搜索
搜索文本
在普通模式下可以使用/或?来进行搜索
/pattern向前搜索pattern?pattern向后搜索pattern
例如要搜索单词example可以输入/example并按Enter。
搜索导航
在搜索结果之间导航
n跳转到下一个匹配N跳转到上一个匹配
高级搜索
使用正则表达式
vim的搜索功能支持正则表达式可以进行更复杂的搜索。例如
/\bword\b搜索完整的单词word/^\d\{3\}-\d\{2\}-\d\{4\}$/搜索符合特定格式如社会安全号码的字符串
高亮搜索
要高亮显示所有匹配项可以在vim配置文件通常是~/.vimrc中添加以下内容
set hlsearch或者在vim中输入
:set hlsearch要关闭高亮显示可以输入
:set nohlsearch搜索时忽略大小写
要在搜索时忽略大小写可以在vim配置文件中添加
set ignorecase或者在vim中输入
:set ignorecase要使搜索区分大小写可以使用
:set noignorecase或者在搜索模式下使用\c忽略大小写和\C区分大小写例如
/example\c文本替换
替换当前行
要在当前行中替换文本可以使用
:s/old/new/这会将当前行中的第一个old替换为new。要替换当前行中的所有匹配项可以使用
:s/old/new/g替换整个文件
要在整个文件中替换文本可以使用
:%s/old/new/这会将文件中的第一个old替换为new。要替换文件中的所有匹配项可以使用
:%s/old/new/g替换时确认
如果希望在替换时进行确认可以添加c标志
:%s/old/new/gc每次匹配时会提示确认可以选择
y替换当前匹配n跳过当前匹配a替换所有匹配q退出替换l替换当前匹配并退出
5. 文件操作
打开和保存文件
打开文件
在vim中打开文件的方法
启动vim时指定文件名vim filename.txt在命令模式下打开新文件:e anotherfile.txt保存文件
在命令模式下进行保存
:w保存当前文件:w filename另存为指定文件名
多文件编辑
打开多个文件
可以在启动vim时指定多个文件
vim file1.txt file2.txt在vim中切换文件
:n切换到下一个文件:N切换到上一个文件:bnext 或 :bn切换到下一个缓冲区:bprev 或 :bp切换到上一个缓冲区:ls列出所有打开的缓冲区:b [number]切换到指定编号的缓冲区
分屏操作
vim支持分屏以同时查看多个文件
:split filename 或 :sp filename水平分屏打开文件:vsplit filename 或 :vsp filename垂直分屏打开文件Ctrl-w w在分屏之间切换Ctrl-w q关闭当前分屏Ctrl-w h/j/k/l在分屏中移动光标
分屏调整
Ctrl-w 增加当前分屏的高度Ctrl-w -减少当前分屏的高度Ctrl-w 增加当前分屏的宽度Ctrl-w 减少当前分屏的宽度
6. 配置和个性化
vimrc文件配置
vim的配置文件是~/.vimrc用于存储用户的个性化设置。
创建和编辑vimrc文件
创建或编辑~/.vimrc文件
vim ~/.vimrc常用配置选项
以下是一些常用的vim配置选项
行号
显示行号
set number高亮当前行
高亮当前行
set cursorline自动缩进
启用自动缩进
set autoindent语法高亮
启用语法高亮
syntax on搜索高亮
启用搜索高亮
set hlsearch忽略搜索大小写
忽略搜索时的大小写
set ignorecase智能大小写搜索
启用智能大小写搜索如果搜索模式中有大写字母则区分大小写否则不区分
set smartcase安装和管理插件
vim可以通过多种插件管理器来安装和管理插件以下是一些流行的插件管理器
Vundle
Vundle是一个流行的vim插件管理器。
安装Vundle
在命令行中执行以下命令
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim配置Vundle
在~/.vimrc中添加以下内容
set nocompatible 关闭vi兼容模式
filetype off 必须 设置runtime path
set rtp~/.vim/bundle/Vundle.vim
call vundle#begin()这里开始列出插件
Plugin VundleVim/Vundle.vim例如安装NERDTree插件
Plugin preservim/nerdtree这里结束列出插件
call vundle#end() 必须
filetype plugin indent on 必须安装插件
在vim中执行以下命令
:PluginInstallvim-plug
vim-plug是另一个流行的vim插件管理器。
安装vim-plug
在命令行中执行以下命令
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim配置vim-plug
在~/.vimrc中添加以下内容
call plug#begin(~/.vim/plugged)这里开始列出插件
Plug junegunn/vim-easy-align例如安装NERDTree插件
Plug preservim/nerdtree这里结束列出插件
call plug#end()安装插件
在vim中执行以下命令
:PlugInstall7. 高级技巧
宏录制与播放
录制宏
按 q 进入录制模式。按任意字母键如 a指定寄存器。执行一系列操作。按 q 结束录制。
播放宏
a播放寄存器 a 中的宏。2a播放寄存器 a 中的宏两次。
使用寄存器
基本使用
指定寄存器。ayy将当前行复制到寄存器 a。ap粘贴寄存器 a 的内容。
查看寄存器内容
:reg显示所有寄存器的内容。
标签和书签
使用标签
:tag tagname跳转到指定标签。Ctrl-]跳转到光标下的标签。Ctrl-t返回到上一个标签位置。
使用书签
m{a-z}在当前位置设置书签。{a-z}跳转到指定书签。返回到上一个位置。
脚本编写
编写vim脚本
脚本文件通常以 .vim 结尾。使用 :source filename.vim 运行脚本。
基本示例 Hello.vim
echo Hello, Vim!可以通过在vim中执行 :source Hello.vim 来运行这个脚本。
这些高级技巧可以极大地提高你的编辑效率和灵活性。
8. 常见问题与解决方案
常见错误及解决方法
1. 文件无法保存
问题尝试保存文件时出现“E212: Can’t open file for writing”错误。
解决方法
确保你有文件的写权限。如果没有可以使用 sudo 提升权限sudo vim filename检查文件路径是否正确。
2. 插件安装失败
问题使用插件管理器安装插件时出现错误。
解决方法
确保插件管理器已正确安装和配置。检查网络连接确保能够访问插件的源地址。使用 :PlugCleanvim-plug或 :PluginCleanVundle清理无效插件然后重新安装。
3. 语法高亮不起作用
问题语法高亮没有启用或不起作用。
解决方法
确保在 ~/.vimrc 中启用了语法高亮syntax on确保文件类型检测已启用filetype plugin indent on检查是否安装了正确的语法文件。
4. vim启动慢
问题vim启动时间过长。
解决方法
检查是否加载了过多的插件尝试禁用一些不常用的插件。优化 ~/.vimrc 配置文件避免重复和冗余设置。使用 vim --startuptime log.txt 命令生成启动时间日志分析并优化启动过程。
社区资源推荐
官方文档
Vim 官方文档Vim Documentation
在线教程
Vim Adventures互动教程Vim AdventuresOpen Vim交互式教程Open Vim
社区论坛和讨论
Reddit Vim 版块r/vimStack Overflow Vim 标签Vim on Stack Overflow
插件资源
Vim Awesome插件搜索引擎Vim Awesome