Vim基础用法,最常用、最实用的命令介绍(保姆级教程)
配置文件设置
- set number (设置行号)
- set nocompatible (设置不兼容vi模式,不设置会导致许多vim特性被禁用)
- set clipboard=unnamed (设置普通的复制粘贴的内容和vim复制的内容相互使用)
打开、编辑,查找文件
- vim + 任意文件名,如vim file.txt, 直接编辑文件, 不存在则创建文件
- 已经打开了vim的情况,使用:edit + 文件名编辑其他文件, :edit file.txt
- :edit *.txt
<tab>
查找当前目录以txt结尾的文件,使用tab补全提示,左右切换选择文件 - :edit **/*.txt
<tab>
查找当前项目 (多个目录)的所有带txt后缀的文件 - :edit ./ 列出当前目录所有的文件,edit后传目录名参数
- :find *.txt 同样是查找以txt结尾的文件
保存、退出
- :w (保存文件)
- :w file.txt (vim直接进入的终端,新建的文件保存,给出文件名)
- :wq (保存并退出vim)
- :q! (不保存强行退出)
移动命令
- h (左)
- j (下)
- k (上)
- l (右)
复制、粘贴、剪切/删除、撤销、取消撤销
- y (复制)
- yw (向右复制一个单词)
- yb (向左复制一个单词,不包含自身)
- vy (复制当前游标对应的字母)
- y$ (复制当前字符到行尾)
- y^ (复制当前字符到行首 )
- yG (从当前位置复制到文件结尾)
- yf+(任意字符), (从当前字符复制到任意字符)
- yy (复制当前一整行)
- p (粘贴)
- p (粘贴到游标所在行的下方)
- shift + p 或者叫大写的P (粘贴到游标所在行的上方)
- d (剪切/删除)
- vd/x (删除当前游标所在的字符)
- dw (删除游标右边的单词)
- db (删除游标左边的单词)
- d$ (删除从当前游标到行尾)
- d^ (删除当前游标到行首)
- dG (删除从当前行到文件结尾)
- df+(任意字符) 或 vf+(任意字符)+d (删除从当前字符到任意字符)
- diw/daw (游标在单词任意位置时,可以删除完整单词)
- dd (删除当前一整行)
- d操作后,按p,就是剪切
- u (撤销)
- u (相当于ctrl + z)
- ctrl + r (取消撤销,相当于ctrl + y)
选中
- v (选中当前游标的字符)
- ctrl + v (选中多列/垂直选取)
- shift + v (选中多行/水平选取)
- viw (选中当前游标位置的整个单词)
- viw + d / y (选中之后可以删除、复制)
跳转
- w (向右跳转一个单词)
- b (向左跳转一个单词)
- ^ (跳到行首的非空字符)
- 0 (跳到行首的第一个字符)
- $ (跳到行尾)
- gg (跳到文件最顶部)
- shift + g 或者叫 G (跳到文件最底部),引申的命令:ggvG (全选)-解释:选中最顶部到最底部,即全选
- nG (n表示行号,例:16G,表示跳到16行)
- 50% (跳到文件的中间位置)
- n% (跳到文件的对应的比例位置)
- ctrl + f (向下翻页)
- ctrl + b (向上翻页)
- ctrl + d (向下翻半页)
- ctrl + u (向上翻半页)
行内搜索
- f + (任意字符), 向右搜索,(游标会跳到搜索到的第一个字符)
- shift + f + (任意字符), 向左搜索,(游标会跳到搜索到的第一个字符)
- f + (任意字符) + ; (;表示在同一行向后重复搜索匹配的字符)
- f + (任意字符) + , (,表示在同一行向前重复搜索匹配的字符)
换行
- o (向下换行)
- shift + o 或者叫O (向上换行)
插入模式
- i (光标在游标字符的前面)
- a (光标在游标字符的后面)
大小写转换
- gU + 任何位置,如:$、w、G、f + 任何字符,当前选中的单词转换为大写
- gu + 任何位置,如:$、w、G、f + 任何字符,当前选中的单词转换为小写
文件内搜索
- / + 任何字符, 从前往后搜索, (游标会停留在第一个匹配的字符,按n匹配下一个,shift + n 匹配上一个)
- ? + 任何字符, 从后往前搜索, (游标会停留在第一个匹配的字符,按n匹配下一个,shift + n 匹配上一个)
- / 和 ? 两者是相反的操作
括号匹配
- % (当有多对括号时,会跳到对应的左括号/右括号, 适用于:(), [], {}, <>)
综合应用
- 如v + f + (任意字符) + d / y:表示先选中当前字符,再通过f + 搜索任意字符, 此时,游标会跳到匹配的字符, 按d删除,或按y复制
- v + i + ( 会选中小括号的内容,右括号也可以
- v + i + [ 会选中中括号的内容,右括号也可以
- v + i + { 会选中花括号的内容,右括号也可以
- di( 删除括号中的内容, 右括号也可以
- da( 删除选中的内容并且包括括号本身, 右括号也可以
退出插入模式
- ESC
Vim基础用法,最常用、最实用的命令介绍(保姆级教程)的更多相关文章
- Linux运维常用的几个命令介绍【转】
Linux运维常用的几个命令介绍 1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...
- Go语言基础二:常用的Go工具命令
常用的Go工具命令 Go附带了一下有用的命令,这些命令可以简化开发的过程.命令通常包含的IDE中,从而使工具在整个开发环境中保持一致. go run 命令 go run命令实在开发过程中执行的最常见的 ...
- Vim使用技巧:常用光标跳转命令
Vim中的命令多如牛毛,按需学习才是唯一出路.这里总结了几个常用的光标跳转命令. 基本移动: h(往左) j(往下) k(往上) l(小写字母l,往右) 行间移动: 快速跳至文件末行:G(大写字母G) ...
- Vim 实用技术,第 1 部分: 实用技巧(转)
原文链接:http://blog.jobbole.com/20604/ 0. Vim 简介 作为开源世界最重要的编辑器之一(另一个是 Emacs),Vim 以其强大的功能和可定制能力被众多开发者所喜爱 ...
- Python3.x:bs4解析html基础用法
Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
- Linux基础 - 系统优化及常用命令
目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...
随机推荐
- 一文看懂 ZooKeeper ,面试再也不用背八股(文末送PDF)
ZooKeeper知识点总结 一.ZooKeeper 的工作机制 二.ZooKeeper 中的 ZAB 协议 三.数据模型与监听器 四.ZooKeeper 的选举机制和流程 本文将以如下内容为主线讲解 ...
- 好客租房25-react中的事件处理(事件对象)
3.2事件对象 可以通过事件处理程序的参数 React中的事件对象叫做:合成事件(对象) 合成事件:兼容所有浏览器 //导入react import React from 'react' ...
- TENSEAL: A LIBRARY FOR ENCRYPTED TENSOR OP- ERATIONS USING HOMOMORPHIC ENCRYPTION 解读
本文记录阅读该paper的笔记,这篇论文是TenSeal库的原理介绍. 摘要 机器学习算法已经取得了显著的效果,并被广泛应用于各个领域.这些算法通常依赖于敏感和私有数据,如医疗和财务记录.因此,进一步 ...
- 网易数帆 Envoy Gateway 实践之旅:坚守 6 年,峥嵘渐显
服务网格成熟度不断提升,云原生环境下流量处理愈发重要, Envoy Gateway 项目于近日宣布开源,"旨在大幅降低将 Envoy 作为 API 网关的使用门槛",引发了业界关注 ...
- 一个全新的Vue拖拽特性实现:“调整尺寸”部分
关于拖拽 CabloyJS提供了完备的拖拽特性,可以实现移动和调整尺寸两大类功能,这里对调整尺寸的开发进行阐述 关于移动的开发,请参见:拖拽:移动 演示 开发步骤 下面以模块test-party为例, ...
- npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)
前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marque ...
- 高级web网页人脸识别tracking.js
what?你没有看错,强大的JavaScript也可以实现人脸识别功能.小编精心整理了一个人脸识别的JavaScript库(tracking.js),通过这篇文章,你可以了解到如何在网页中实现一个人脸 ...
- 自己封装的tools.js文件
/* * 生成指定范围的随机整数 * @param lower 下限 * @param upper 上限 * @return 返回指定范围的随机整数,上/下限值均可取 */ function rand ...
- git stash 的一次惊心动魄的误删操作
git stash 的一次惊心动魄的误删操作 简介:行走在互联网最低端的小熊 问题--源起: 小熊和所有混迹在互联网中的开发一样,公司里面用git来管理项目,由于可能经常有几个问题要开发,要频繁在多分 ...
- 在两台配置了Win10操作系统的电脑之间直接拷贝文件
前提条件:需要一根网线 每台电脑需手动设置IP地址 设置IP地址随意,示例为:10.10.2.11 和 10.10.2.12 每台电脑需关闭Windows防火墙 测试网络是否连通 方式一 远程桌面连接 ...