Linux Vim教程(二):基本命令和操作

目录

[1. 进入和退出Vim](#1. 进入和退出Vim)

[1.1 启动Vim](#1.1 启动Vim)

[1.2 退出Vim](#1.2 退出Vim)

[2. 模式切换](#2. 模式切换)

[2.1 切换到插入模式](#2.1 切换到插入模式)

[2.2 切换到普通模式](#2.2 切换到普通模式)

[2.3 切换到命令模式](#2.3 切换到命令模式)

[2.4 切换到可视模式](#2.4 切换到可视模式)

[3. 移动光标](#3. 移动光标)

[4. 编辑文本](#4. 编辑文本)

[4.1 插入和追加文本](#4.1 插入和追加文本)

[4.2 删除文本](#4.2 删除文本)

[4.3 复制和粘贴文本](#4.3 复制和粘贴文本)

[4.4 撤销和重做](#4.4 撤销和重做)

[5. 搜索和替换](#5. 搜索和替换)

[5.1 搜索文本](#5.1 搜索文本)

[5.2 替换文本](#5.2 替换文本)

[6. Vim配置](#6. Vim配置)

[6.1 配置文件](#6.1 配置文件)

[6.2 安装插件](#6.2 安装插件)

[7. Vim脚本](#7. Vim脚本)

[7.1 编写简单的Vim脚本](#7.1 编写简单的Vim脚本)

[7.2 创建自定义命令](#7.2 创建自定义命令)

[8. 代码示例](#8. 代码示例)

[8.1 自动完成配置](#8.1 自动完成配置)

[8.2 文件浏览器配置](#8.2 文件浏览器配置)

[9. Vim的高级操作](#9. Vim的高级操作)

[9.1 多文件编辑](#9.1 多文件编辑)

[9.2 使用窗口和标签页](#9.2 使用窗口和标签页)

[9.3 宏录制和回放](#9.3 宏录制和回放)

[9.4 自定义键映射](#9.4 自定义键映射)

[10. 总结](#10. 总结)


Vim以其强大的编辑功能和灵活的操作方式著称,是许多程序员和系统管理员的首选编辑器。本文将深入探讨Vim的基本命令和操作,帮助你掌握这款强大的文本编辑器的基本用法。通过学习Vim的基本命令和操作,你将能够高效地编辑文本文件,提高工作效率。

1. 进入和退出Vim

1.1 启动Vim

要启动Vim,只需在终端中输入vim命令即可。你可以指定要编辑的文件名,也可以直接启动Vim而不指定文件名。

vim filename

如果文件存在,Vim将打开该文件;如果文件不存在,Vim将创建一个新的文件。

1.2 退出Vim

退出Vim有多种方式,以下是几种常用的方法:

  • :q:退出Vim。如果文件已被修改,Vim会提示保存修改。
  • :q!:强制退出Vim,不保存修改。
  • :wq:x:保存文件并退出Vim。

2. 模式切换

Vim有几种不同的模式,每种模式有不同的功能:

  • 普通模式(Normal mode):这是Vim的默认模式,可以在此模式下执行各种命令。
  • 插入模式(Insert mode):在此模式下可以输入文本。
  • 命令模式(Command mode):在此模式下可以输入以:开头的命令。
  • 可视模式(Visual mode):在此模式下可以选择文本块进行操作。

2.1 切换到插入模式

要切换到插入模式,可以使用以下几种命令:

  • i:在光标前插入文本。
  • I:在行首插入文本。
  • a:在光标后插入文本。
  • A:在行尾插入文本。
  • o:在当前行下方新建一行并插入文本。
  • O:在当前行上方新建一行并插入文本。

2.2 切换到普通模式

在插入模式下,可以按Esc键切换回普通模式。

2.3 切换到命令模式

在普通模式下,可以按:键切换到命令模式,然后输入命令并按Enter键执行。

2.4 切换到可视模式

在普通模式下,可以使用以下命令切换到可视模式:

  • v:进入可视模式。
  • V:进入可视行模式。
  • Ctrl-v:进入可视块模式。

3. 移动光标

在普通模式下,可以使用各种命令移动光标:

  • h:左移一个字符。
  • j:下移一行。
  • k:上移一行。
  • l:右移一个字符。
  • w:移动到下一个单词的开头。
  • b:移动到前一个单词的开头。
  • e:移动到当前或下一个单词的结尾。
  • 0:移动到行首。
  • $:移动到行尾。
  • gg:移动到文件开头。
  • G:移动到文件结尾。

4. 编辑文本

4.1 插入和追加文本

  • i:在光标前插入文本。
  • a:在光标后插入文本。
  • o:在当前行下方新建一行并插入文本。

4.2 删除文本

  • x:删除光标所在的字符。
  • dw:删除光标后的一个单词。
  • dd:删除当前行。
  • d$:删除到行尾。
  • d0:删除到行首。

4.3 复制和粘贴文本

  • yy:复制当前行。
  • yw:复制一个单词。
  • p:在光标后粘贴。
  • P:在光标前粘贴。

4.4 撤销和重做

  • u:撤销上一步操作。
  • Ctrl-r:重做上一步撤销的操作。

5. 搜索和替换

5.1 搜索文本

  • /pattern:向前搜索模式。
  • ?pattern:向后搜索模式。
  • n:跳转到下一个匹配项。
  • N:跳转到上一个匹配项。

5.2 替换文本

  • :s/old/new:将当前行中的第一个old替换为new。
  • :s/old/new/g:将当前行中的所有old替换为new。
  • :%s/old/new/g:将整个文件中的所有old替换为new。
  • :%s/old/new/gc:在整个文件中交互式地将所有old替换为new。

6. Vim配置

6.1 配置文件

Vim的配置文件是~/.vimrc,可以在该文件中添加自定义配置来改变Vim的行为。例如:

" 启用行号
set number

" 设置缩进
set tabstop=4
set shiftwidth=4
set expandtab

" 启用语法高亮
syntax on

6.2 安装插件

Vim支持使用插件来扩展其功能。以下是使用Vundle插件管理器安装插件的示例:

  1. 安装Vundle:

    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

  2. ~/.vimrc中添加Vundle配置:

    set nocompatible " be iMproved, required
    filetype off " required

    " 设置Vundle插件目录
    set rtp+=~/.vim/bundle/Vundle.vim

    call vundle#begin()
    " 必须的Vundle插件
    Plugin 'VundleVim/Vundle.vim'

    " 其他插件
    Plugin 'scrooloose/nerdtree'

    call vundle#end() " required
    filetype plugin indent on " required

  3. 启动Vim并安装插件:

    :PluginInstall

7. Vim脚本

Vim脚本是一种用于扩展Vim功能的脚本语言。通过编写Vim脚本,你可以实现自动化任务、创建自定义命令和映射键。

7.1 编写简单的Vim脚本

以下是一个简单的Vim脚本示例,用于在保存文件时自动删除行尾空白字符:

function! TrimTrailingWhitespace()
    let l:save = winsaveview()
    %s/\s\+$//e
    call winrestview(l:save)
endfunction

autocmd BufWritePre * call TrimTrailingWhitespace()

7.2 创建自定义命令

你可以使用command命令创建自定义命令。例如,创建一个自定义命令Hello,打印一条消息:

command! Hello echo "Hello, Vim!"

8. 代码示例

8.1 自动完成配置

以下是一个简单的自动完成配置示例,使用了YouCompleteMe插件:

" 安装YouCompleteMe插件
Plugin 'Valloric/YouCompleteMe'

" 启用YouCompleteMe
let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'

" 启用语法检查
let g:ycm_seed_identifiers_with_syntax = 1

" 启用自动补全
let g:ycm_complete_in_comments = 1
let g:ycm_complete_in_strings = 1
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_min_num_of_chars_for_completion = 2
let g:ycm_cache_omnifunc = 0

8.2 文件浏览器配置

以下是一个文件浏览器配置示例,使用了NERDTree插件:

" 安装NERDTree插件
Plugin 'scrooloose/nerdtree'

" 映射键绑定
map <C-n> :NERDTreeToggle<CR>

" 启动时打开NERDTree
autocmd vimenter * NERDTree

9. Vim的高级操作

9.1 多文件编辑

在编写代码或处理文本文件时,往往需要同时编辑多个文件。Vim提供了一些方便的命令来处理多文件编辑。

  • :e filename:编辑一个新文件。
  • :bnext:bn:切换到下一个缓冲区。
  • :bprev:bp:切换到上一个缓冲区。
  • :bd:删除当前缓冲区。

9.2 使用窗口和标签页

Vim支持使用窗口和标签页来管理多个文件。

  • :split:sp:水平分割窗口。
  • :vsplit:vsp:垂直分割窗口。
  • Ctrl-w w:切换窗口。
  • :tabnew filename:打开新标签页。
  • :tabnext:tabn:切换到下一个标签页。
  • :tabprev:tabp:切换到上一个标签页。
  • :tabclose:tabc:关闭当前标签页。

9.3 宏录制和回放

宏是Vim中一个非常强大的功能,可以帮助你自动化重复的任务。你可以录制一组命令并多次回放这些命令。

  • q{register}:开始录制宏,register是一个字母,用于保存宏。
  • 执行一系列命令。
  • q:停止录制宏。
  • @{register}:回放宏。
  • @@:回放上一个宏。

9.4 自定义键映射

你可以通过自定义键映射来简化常用的操作。例如,以下是一些常用的键映射配置:

" 将 jk 映射为 Esc
inoremap jk <Esc>

" 将 <C-s> 映射为保存文件
nnoremap <C-s> :w<CR>
inoremap <C-s> <Esc>:w<CR>a

" 将 <C-p> 映射为打开文件浏览器
nnoremap <C-p> :NERDTreeToggle<CR>

10. 总结

本章介绍了Vim的基本命令和操作,包括进入和退出Vim、模式切换、光标移动、文本编辑、搜索和替换、Vim配置、Vim脚本、自动完成配置、文件浏览器配置、多文件编辑、使用窗口和标签页、宏录制和回放、自定义键映射等内容。掌握这些基本命令和操作,你将能够更高效地使用Vim进行文本编辑,提高工作效率。

相关推荐
雨中rain2 分钟前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG13 分钟前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss22 分钟前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish22 分钟前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个24 分钟前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&25 分钟前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱26 分钟前
【linux】NFS实验
linux·服务器
王铁柱子哟-30 分钟前
解决 正在下载VS Code 服务器... 问题
运维·服务器
Ven%30 分钟前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip
是阿建吖!37 分钟前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库