移动光标

单位级

  • h 向左一字符
  • j 下一行
  • k 上一行
  • l 向右一字符

单词级

  • w or W 向右移动到下一单词开头
  • e or E 向右移动到单词结尾
  • b or B 向左移动到单词开头

块级

  • gg 到文档第一行
  • G 到文档最后一行
  • 0 到行首(第 1 列)
  • ^ 到第一个非空白字符
  • $ 到行尾
  • H 移动到屏幕顶端
  • M 移动到屏幕中间
  • L 移动到屏幕底部
  • Ctrl-d 向下移动半页
  • Ctrl-u 向上移动半页
  • Ctrl-f 向下移动一页
  • Ctrl-b 向上移动一页
  • :<N> or <N>gg 跳转到第 N 行
  • :+<N> or <N>j 向下跳 N 行
  • :-<N> or <N>k 向上跳 N 行

在 Vim 中打开文件

  • :e <filename> 打开名为 filename 的文件,若文件不存在则创建之
  • :Ex 在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:- 进入上级目录)

查找

文档内查找

  • * 向后查找光标当前所在单词
  • # 向前查找光标当前所在单词
  • /<search> 向后查找指定字符串
  • ?<search> 向前查找指定字符串
  • n 继续查找下一个
  • N 继续查找上一个

行内查找

  • f<X> 当前行内向行尾方向查找并定位到字符 X
  • t<X> 当前行内向行尾方向查找并定位到字符 X 之前
  • F<X> 当前行内向行首方向查找并定位到字符 X
  • T<X> 当前行内向行首方向查找并定位到字符 X 之后
  • ; 继续向当前方向查找下一个字符
  • , 向当前相反方向查找下一个字符

匹配查找

Vim 中可以使用 %()[]{} 进行匹配查找

当光标位于其中一个符号上时

按下 %,光标会跳到与之匹配的另外一个符号上


修改文档

插入

  • i 当前字符前插入
  • a 当前字符后插入
  • I 行首插入
  • A 行尾插入
  • o 在下一行插入
  • O 在上一行插入

删除(并保存到 Vim 剪贴板)

  • s 删除当前字符,并进入 INSERT 模式
  • S 删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式(等同于 cc
  • x 删除当前字符,相当于 insert 模式下的 Delete
  • X 删除前一个字符,相当于 insert 模式下的 Backspace
  • dd 删除当前行,并将删除的内容保存到 Vim 剪贴板
  • dw/de 删除一个连续的字符串,区别是删不删空格
  • d<X> 删除指定内容并保存到 Vim 剪贴板
  • cc 删除当前行并保存到 Vim 剪贴板,同时进入 INSERT 模式
  • c<X> 删除指定内容并保存到 Vim 剪贴板,同时进入 INSERT 模式
  • xp 非行尾交换两个字符,如从bs变成sb
  • df" 删除到出现的第一个双引号

复制

  • yy 复制当前行到 Vim 剪贴板
  • y<X> 复制指定内容到 Vim 剪贴板
  • yw 复制光标开始的一个单词
  • y$ 复制光标到行尾
  • yfA 复制光标到第一个大写A中间的内容
  • y2fA 复制光标到第二个大写A中间的内容

粘贴

  • p 在当前位置后粘贴
  • P 在当前位置前粘贴

合并

  • J 将当前行与下一行合并

替换

  • r<X> 将当前字符替换为 X
  • gu<X> 将指定的文本转换为小写
  • gU<X> 将指定的文本转换为大写
  • :%s/<search>/<replace>/ 查找 search 内容并替换为 replace 内容
  • cw 替换一个单词

撤销、重做

  • u 撤销
  • Ctrl-r 重做

保存文件

  • :w 保存当前文件
  • :wa 保存全部文件
  • :wq or ZZ 保存并退出
  • :q! or ZQ 强制退出,不保存
  • :saveas <new filename> 文件另存为
  • :w <new filename> 文件另存一份名为 <new filename> 的副本并继续编辑原文件

调整文本

  • %s/$/sth/ 在行尾追加sth
  • %s/^M//g 替换掉dos换行符,^M使用ctrl+v + Enter即可输入
  • g/^\s$/d* 删除空行以及只有空格的行
  • %s/#.*//g 删除#之后的字符

简单设置 Vim

  • :set number 显示行号
  • :set relativenumber 显示相对行号(这个非常重要,慢慢体会)
  • :set hlsearch 搜索结果高亮
  • :set autoindent 自动缩进
  • :set smartindent 智能缩进
  • :set tabstop=4 设置 tab 制表符所占宽度为 4
  • :set softtabstop=4 设置按 tab 时缩进的宽度为 4
  • :set shiftwidth=4 设置自动缩进宽度为 4
  • :set expandtab 缩进时将 tab 制表符转换为空格
  • :filetype on 开启文件类型检测
  • :syntax on 开启语法高亮

缩进

  • >> 向右缩进当前行
  • << 向左缩进当前行

自动排版

  • == 自动排版当前行
  • gg=G 当前文档全文自动排版
  • <N>== 对从当前行开始的 N 行进行自动排版
  • =<N>j 对当前行以及向下 N 行进行自动排版
  • =<N>k 对当前行以及向上 N 行进行自动排版

窗口分屏

分屏方式

  • :split 缩写 :sp or Ctrl-w s 上下分屏
  • :vsplit 缩写 :vs or Ctrl-w v 左右分屏
  • :diffsplit 缩写 :diffs diff 模式打开一个分屏,后面可以加上 {filename}

窗口跳转

  • Ctrl-w w 激活下一个窗口
  • Ctrl-w j 激活下方窗口
  • Ctrl-w k 激活上方窗口
  • Ctrl-w h 激活左侧窗口
  • Ctrl-w l 激活右侧窗口

移动分屏

  • Ctrl-w L 移动到最右侧
  • Ctrl-w H 移动到最左侧
  • Ctrl-w K 移动到顶部
  • Ctrl-w J 移动到底部

屏幕缩放

  • Ctrl-w = 平均窗口尺寸
  • Ctrl-w + 增加高度
  • Ctrl-w - 缩减高度
  • Ctrl-w _ 最大高度
  • Ctrl-w > 增加宽度
  • Ctrl-w < 缩减宽度
  • Ctrl-w | 最大宽度

标签页

创建标签页

  • :tabnew or :tabedit 缩写 :tabe 打开新标签页
  • Ctrl-w gf 在新标签页中打开当前光标所在位置的文件名

注意::tabnew:tabedit 后面都可以跟一个 <空格><文件名> 用以在新标签页中
打开指定文件,还可以在 : 后面加一个数字,指出新标签页在列表中的位置(从 0 开始)。

切换标签页

  • gt or :tabnext 缩写 :tabn 下一个标签页(最后一个会循环到第一个)
  • gT or :tabprevious 缩写 :tabp 上一个标签页(第一个会循环到最后一个)
  • :tabrewind 缩写 :tabr or :tabfirst 缩写 :tabfir 到第一个
  • :tablast 缩写 :tabl 到最后一个标签页

关闭标签页

  • :tabclose 缩写 :tabc 关闭当前标签页
  • :-tabc 关闭上一个标签页
  • :+tabc 关闭下一个标签页
  • :tabonly 缩写 :tabo 关闭其他标签页

函数设定

  • 定义保存退出函数
" 定义保存退出函数
func! SaveExit()
exec "wq"
endfunc" 映射Ctrl+z键调用保存退出函数
map <C-z> :call SaveExit()<CR>
imap <C-z> <ESC> :call SaveExit()<CR>
vmap <C-z> <ESC> :call SaveExit()<CR>
  • 定义保存编译并执行代码函数
" 定义保存编译并执行代码函数
func! ComplieCode()
exec "w"
if &filetype == "c"
exec "!gcc -std=gnu99 % -lm && ./a.out"
endif
endfunc" 映射Ctrl+x键调用编译并执行函数
map <C-x> :call ComplieCode()<CR>
imap <C-x> <ESC> :call ComplieCode()<CR>
vmap <C-x> <ESC> :call ComplieCode()<CR>
  • 定义添加头文件和Main函数
" 定义添加头文件和Main函数
func! InsertMain()
if &filetype == "c"
call setline(1,"#include <stdio.h>")
call setline(2,"")
call setline(3,"int main(int argc,const char* argv[])")
call setline(4,"{")
call setline(5,"\t")
call setline(6,"}")
exec "5"
endif
endfunc
map <C-p> :call InsertMain()<CR>i<TAB>" 自动添加头文件卫士
func! InsertIfndef()
call setline(1,"#ifndef ".toupper(expand("%:t:r"))."_H")
call setline(2,"#define ".toupper(expand("%:t:r"))."_H")
call setline(3,"")
call setline(4,"#endif//".toupper(expand("%:t:r"))."_H")
endfuncautocmd BufNewFile *.h :call InsertIfndef()

Vim 常用命令记录相关推荐

  1. 自己用到的vim常用命令

    一.前言 这里整理的是我在实习期间用到的常用vim命令,特记录如下,以免忘记. 二.vim常用命令 1.vim中的光标移动 shift+6(^):跳到行首(第一个非空格字符)(注:在shell跳到行首 ...

  2. linux 自定义vi dd,Vim常用命令及配置方案

    几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很 ...

  3. Vim常用命令和配置

    [TOC] Vim常用命令和配置 Mac 终端键入 vimtutor 即可进入Vim入门教程 问题收集 vim代码粘贴,格式混乱到逆天.这是因为vim设置了自动缩进造成的问题, 所以如果你需要在ins ...

  4. Linux—vim常用命令

    vim常用命令: 1. 键入i进入编辑模式 2. esc进入命令模式 3. a,进入编辑模式 3. b,光标移动到单词前,end,光标移动到行尾 4. home光标移动到行首 5. cc,删除当前行, ...

  5. ElasticSearch常用命令记录

    ElasticSearch常用命令记录 < - 个人学习笔记 - > 软件版本:curl -s localhost:9200/?pretty 输出中"version" ...

  6. ubuntu系统vim常用命令学习以及ubuntu软件下载安装

    文章目录 一.ubuntu系统vim常用命令学习 (一)进入进入vim编辑器的方式 (二)vi的三种工作方式 (三)退出vi的命令 (四)命令模式下的各种命令 1.光标移动命令 2.插入命令 3.删除 ...

  7. vi/vim常用命令 zz

    http://blog.sina.com.cn/s/blog_492101c70100o10c.html 最近整理的vi/vim常用命令,有需要的童鞋拿去用吧 (本来是在excel中的,但是没有地方上 ...

  8. vim常用命令之多行注释和多行删除

    vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率.   1.多行注释:   1). 首先按esc进入命令行模式下,按下Ctrl ...

  9. centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)

    Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...

最新文章

  1. 你知道Linux和Unix的区别吗
  2. Unchecked call to ‘mapoPair(PairFunction<T,K2,V2>)‘ as a member of raw type
  3. shell 脚本学习及troubleshooting
  4. leetcode 761. Special Binary String
  5. 高斯计传感器使用的霍尔传感器原理
  6. luminex细胞因子检测
  7. 最简单的 QQ分享、微信分享、一键加QQ群 引入
  8. 高中计算机应用面试教资真题,2019下半年高中信息技术教师资格证面试试题(精选)第四批...
  9. 有趣的智力题和概率题
  10. h5计时器(requestAnimationFrame)
  11. c语言编程后怎么做成软件,编程软件是用来编程的,那编程软件是怎么做出来的?...
  12. 【干货】怎么将阿里云ECS的数据下载到本地
  13. 质性分析软件nvivo的学习(一)
  14. 抽屉原理与Simhash
  15. NetWorker Pro for mac(网络流量监控软件)
  16. 安卓APP之加固技术
  17. 解决Windows11/10本地账户改用Microsoft账户登录显示“发生了错误”的问题
  18. MacBook Air M2无需虚拟屏启用Hidpi+任意缩放(22年9月)
  19. 测试工具jmeter清理缓存关闭java进程
  20. c语言编写虚拟光驱软件下载,daemon tools lite下载-DAEMON Tools Lite v10.14.0.1747 免费版 - 下载吧...

热门文章

  1. DGL GPU版本安装后无法import dgl 解决方案
  2. 至尊宝工具箱 - 电商运营选品必备工具下载安装详细教程
  3. java课程设计(第三版)魔板游戏源代码(可实现英雄榜功能)
  4. mac安装zsh重启电脑后node等环境消失
  5. Vue 搭配element-UI 实现可搜索穿梭框
  6. Android编程规范
  7. 阿里云(Linux)安装宝塔面板最新版图文教程
  8. c语言模拟键盘自动按键,C语音键盘钩子和用法 模拟键盘
  9. 点击Visual Studio 2019启动项无反应,无法启动
  10. windows功能_七个逆天的Windows快捷键功能!用完仿佛人生已经到达了巅峰!