Linux学习笔记:vim
本文更新于2019-09-05。
说明:下文中,使用{}引起表示自定义变量,根据实际情况填写。使用[]引起表示内容可选,使用<>引起表示按键内容。(+)表示按键组合
模式
vim包括命令模式、编辑模式、底行模式。
编辑模式 <--------------------- 命令模式 ---------------------> 底行模式
---------------------> <---------------------
命令模式
进入vim时使用的是命令模式。
| 按键 | 说明 |
|---|---|
| 0 | 光标移动至该行第一个字符 |
| $ | 光标移动至该行最后一个字符 |
| <Home> | 光标移动至该行第一个字符 |
| <End> | 光标移动至该行最后一个字符 |
| {n}← | 光标向左移动n个字符,默认为一个字符 |
| {n}↓ | 光标向下移动n行,默认为一行 |
| {n}↑ | 光标向上移动n行,默认为一行 |
| {n}→ | 光标向右移动n个字符,默认为一个字符 |
| {n}h | 光标向左移动n个字符,默认为一个字符 |
| {n}j | 光标向下移动n行,默认为一行 |
| {n}k | 光标向上移动n行,默认为一行 |
| {n}l | 光标向右移动n个字符,默认为一个字符 |
| {n}<Space> | 光标向右移动n个字符,默认为一个字符 |
| {n}<Enter> | 光标向下移动n行,至其第一个字符 |
| - | 光标移动到非空格的上一行 |
| + | 光标移动到非空格的下一行 |
| <Page Up> | 光标向上移动一页 |
| <Page Down> | 光标向下移动一页 |
| <Ctrl>(+)b | 光标向上移动一页 |
| <Ctrl>(+)f | 光标向下移动一页 |
| <Ctrl>(+)u | 光标向上移动半页 |
| <Ctrl>(+)d | 光标向下移动半页 |
| H | 光标移动至此屏幕第一行的第一个字符 |
| M | 光标移动至此屏幕中间行的第一个字符 |
| L | 光标移动至此屏幕最后一行的第一个字符 |
| gg | 光标移动至文件第一行的第一个字符 |
| {n}G | 光标移动至文件的第n行的第一个字符,默认为最后一行 |
| <Ctrl>(+)wj | 光标移动至下面的窗口 |
| <Ctrl>(+)w↓ | 光标移动至下面的窗口 |
| <Ctrl>(+)wk | 光标移动至上面的窗口 |
| <Ctrl>(+)w↑ | 光标移动至上面的窗口 |
| <Ctrl>(+)wq | 退出当前窗口 |
| v | 多字符选择,反白选择光标经过的连续字符 |
| V | 多行选择,反白选择光标经过的连续行 |
| <Ctrl>(+)v | 块选择,反白选择光标移动开始和移动结束位置间的矩形文本块 |
| {n}X | 剪切光标前n个字符,默认为一个字符 |
| {n}x | 剪切光标所在字符起后n个字符,默认为一个字符 |
| d0 | 剪切光标前一个字符至该行第一个字符 |
| d$ | 剪切光标所在字符至该行最后一个字符 |
| {n}dd | 剪切光标所在行开始的n行,默认为一行 |
| d1G | 剪切光标所在行至第一行 |
| dG | 剪切光标所在行至最后一行 |
| d | 剪切反白选择的字符 |
| y0 | 复制光标前一个字符至该行第一个字符 |
| y$ | 复制光标所在字符至该行最后一个字符 |
| {n}yy | 复制光标所在行开始的n行,默认为一行 |
| y1G | 复制光标所在行至第一行 |
| yG | 复制光标所在行至最后一行 |
| y | 复制反白选择的字符 |
| P | 粘贴,如粘贴行则粘贴在当前行上一行 |
| p | 粘贴,如粘贴行则粘贴在当前行下一行,可黏贴矩形文本块 |
| J | 将光标所在行与下一行合并至同一行 |
| {n}c{direction} | 进入插入模式,并向指定方向剪切n个字符或n行,direction可为←、↓、↑、→、h、j、k、l |
| i | 进入插入模式,从光标所在字符处开始插入 |
| I | 进入插入模式,从光标所在行第一个非空白符处开始插入 |
| a | 进入插入模式,从光标所在字符的下一字符处开始插入 |
| A | 进入插入模式,从光标所在行最后一个字符后开始插入 |
| o | 进入插入模式,在光标所在行下一行插入新行 |
| O | 进入插入模式,在光标所在行上一行插入新行 |
| r | 使用下一个输入的字符替换光标所在字符,只替换一次 |
| R | 进入替换模式,一直替换光标所在字符直至输入<Esc>,期间可移动光标 |
| u | 撤销上一个操作 |
| <Ctrl>(+)r | 重做上一个撤销的操作 |
| . | 重复上一个操作 |
| n | 重复底行模式输入的前一个查找操作 |
| N | 反方向重复底行模式输入的前一个查找操作 |
| ZZ | 如文件有改动,则保存文件后退出vim;如文件没有改动,则直接退出vim |
编辑模式
编辑模式包括:插入模式,界面左下方有“-- INSERT --”提示;替换模式,界面左下方有“-- REPLACE --”提示。
| 按键 | 说明 |
|---|---|
| <Esc> | 退出编辑模式,回到命令模式 |
底行模式
底行模式需使用<Enter>结束输入。
| 按键 | 说明 |
|---|---|
| /{word} | 向下查找word |
| ?{word} | 向上查找word |
| :n | 编辑下一个文件 |
| :N | 编辑上一个文件 |
| :files | 列出打开的所有文件 |
| :sp [{filename}] | 打开新窗口。如不指定filename则使用当前窗口相同的文件 |
| :set {setting} | 修改vim设置 |
| :{n},{m}s/{src}/{dst}/g[c] | 将n(含)至m(含)行的src替换为dst,m使用$表示最后一行。可使用c指定替换前需要提示确认 |
| :r {filename} | 读取指定文件内容并插入至光标所在行的下一行 |
| :[{n},{m}] w {filename} | 将文件内容保存至指定文件,可指定n(含)至(m)行 |
| :w[!] | 保存文件。可使用!强制保存文件,但实际能否保存仍与文件权限有关 |
| :q[!] | 退出vim或退出当前窗口。可使用!强制退出,不保存文件 |
| :wq[!] | 保存文件后退出vim。可使用!强制保存后退出,但实际能否保存仍与文件权限有关 |
| :![ ]{command} | 暂时离开vim,执行Linux命令 |
| <Esc> | 退出底行模式,回到命令模式 |
.vimrc
vim设置。每行一个设置值,可以:开始,可使用"注释该行后面的内容。
| 设置 | 说明 |
|---|---|
| set | 显示所有与默认值不同的设置 |
| set all | 显示当前所有设置 |
| set autoindent | 自动缩进 |
| set backspace=N | 设置编辑模式下退格键的动作。2可以删除任何字符,0和1只能删除刚刚输入的字符,无法删除已存在的字符 |
| set backup | 自动备份文件。即当文件有任何改动时,原文件会在文件所在目录下备份为FILENAME~ |
| set bg=dark|light | 指定背景色调 |
| set hlsearch | 高亮查找结果 |
| set noautoindent | 取消自动缩进 |
| set nohlsearch | 取消高亮查找结果 |
| set nonu | 取消显示行号 |
| set nu | 显示行号 |
| set ruler | 显示右下角的提示 |
| set showmode | 显示左下角的提示 |
| syntax on|off | 开启/关闭语法高亮 |
.viminfo
记录vim的历史操作。
.swap
使用vim打开文件后,会在文件所在目录下生成.FILENAME.swap文件。
Linux学习笔记:vim的更多相关文章
- Linux学习笔记--vim
Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. vim的三种模式 命令模式(Command mode),输入模式(Insert m ...
- Linux学习笔记—vim程序编辑器
vi和vim vim是vi的升级版,支持vi的所有指令 vi的使用 vi分为三种模式:一般模式.编辑模式.命令行模式 一般模式 以vi打开一个文件就直接进入一般模式了,这个模式下可以使用上下左右按键来 ...
- linux/linux学习笔记-vim文本编辑器(mooc)
vim文本编辑器 vim与vi的区别:( vim=vi +IMproved) VIM是一个Unix以及类unix文本编辑器 特点:功能强大,高度可定制 vim编辑器的三种模式:一般模式.编辑模式和命令 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux —— 学习笔记(汇总)
笔记目录:一.系统知识 和 基本概念 二.常用操作 三.系统管理(内存.设备.服务等管理) ...
- deepin linux 学习笔记(二)——文本编辑器
目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...
- Linux 学习笔记之超详细基础linux命令 Part 12
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 4
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3----------------- ...
- 91 Testing Linux学习笔记
91 Testing Linux学习笔记... 学习地址:91Testing 的Linux教程=====================学习网址:http://www.91testing.net/ar ...
- 20155303狄惟佳预备作业三Linux学习笔记
20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...
随机推荐
- es批量导入进一对多的数据
es批量导入进一对多的数据 我有一个产品表 一个产品对应多个属性名 一个属性名对应多个属性值 一个产品还对应一个分类名称 控制层 @ApiOperation(value = "导入所有 ...
- email.py
import os import argparse import yaml import smtplib import csv from email.mime.multipart import MIM ...
- 遥想大肠包小肠----python装饰器乱弹
说起装饰器就tm蛋疼,在老男孩学习python装饰器,结果第二天默写,全错了,一道题抄十遍,共计二十遍. 要是装饰器是一人,我非要约他在必图拳馆来一场...... 下面容我展示一下默写二十遍的成果 语 ...
- python2和python3编程差异杂谈(-)
python2 默认编码ascii 在使用中文时要显示的声明 #-*-encoding:utf-8-*- python3 默认编码utf-8,良好的支持了中文输入 python2: print函数 ...
- BZOJ 5495: [2019省队联测]异或粽子 (trie树)
这题果然是原题[BZOJ 3689 异或之].看了BZOJ原题题解,发现自己sb了,直接每个位置维护一个值保存找到了以这个位置为右端点的第几大,初始全部都是1,把每个位置作为右端点能够异或出来的最大值 ...
- luogu2034
/* * 正难则反 * f[i] 表示前 i 个数中被删除的数的最小和 * f[i] = min(f[j]) + num, i - k + 1 <= j < i; * 单调队列维护 */ ...
- vue中插槽(slot)的使用
刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...
- 解决“cv2.error: OpenCV(3.4.2) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:356:...”
主要是图片路径中“文件夹分隔符”使用的错误 将“\”改成“/”就好了 修改后的测试代码如下:x.py #导入cv模块 import cv2 as cv #读取图像,支持 bmp.jpg.png.tif ...
- shell 显示详细信息
MacdeMacBook-Pro:test macname$ ls -al | more total drwxr-xr-x macname staff : . drwxr-xr-x+ macname ...
- 动态规划——区间DP,计数类DP,数位统计DP
本博客部分内容参考:<算法竞赛进阶指南> 一.区间DP 划重点: 以前所学过的线性DP一般从初始状态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态. 区间DP也属于线性DP的一种, ...