Vim 安装和配置、优化
Vim 介绍
- Vim 官网:http://www.vim.org/
Vim 安装
- CentOS:
sudo yum install -y vim
- Ubuntu:
sudo apt-get install -y vim
- Windows GVim 下载:http://www.xiazaiba.com/html/3347.html
Vim 配置(CentOS 环境)
- 编辑配置文件是:
sudo vim /etc/vimrc
Vim 基础快捷键
- 注意
- 严格区分字母大小写
- 含有
Ctrl
字眼都表示 Ctrl 键盘按钮 - 特定符号需要配合 Shift 键,比如字母键盘区上面的数字区:!@#%%^&*()
- 要按出冒号键
:
也是需要 Shift 的
- 移动
j
,下k
,上h
,左l
,右v
,按 v 之后按方向键可以选中你要选中的文字gg
,跳到第 1 行G
,跳到最后一行16G
或:16
,跳到第 16 行$
,到本行 行尾0
,到本行 行头w
,到下一个单词的 开头e
,到下一个单词的 结尾Ctrl + u
,向文件 首翻 半屏Ctrl + d
,向文件 尾翻 半屏Ctrl + f
,向文件 尾翻 一屏Ctrl + b
,向文件 首翻 一屏*
,匹配光标当前所在的单词,移动光标到 下一个 匹配单词#
,匹配光标当前所在的单词,移动光标到 上一个 匹配单词^
,到本行第一个单词头g_
,到本行最后一个单词尾巴%
,匹配括号移动,包括 (、{、[
- 插入
I
,在当前 行首 插入A
,在当前 行尾 插入i
,在当前字符的 左边 插入a
,在当前字符的 右边 插入o
,在当前行 下面 插入一个新行O
,在当前行 上面 插入一个新行
- 编辑
- 删除
x
,删除 光标后 的 1 个字符2x
,删除 光标后 的 2 个字符X
,删除 光标前 的 1 个字符2X
,删除 光标前 的 2 个字符dd
,删除当前行cc
,删除当前行后进入 insert 模式dw
,删除当前光标下的单词/空格d$
,删除光标至 行尾 所有字符dG
,删除光标至 文件尾 所有字符3dd
,从当前光标开始,删掉 3 行echo > aa.txt
,从 bash 角度清空文件内容,这个比较高效
- 复制
y
,复制光标所选字符yw
,复制光标后单词yy
,复制当前行4yy
,复制当前行及下面 4 行y$
,复制光标位置至 行尾 的内容y^
,复制光标位置至 行首 的内容
- 粘贴
p
,将粘贴板中内容复制到 光标之后P
,将粘贴板中内容复制到 光标之前
- 其他
ddp
,交换当前光标所在行和下一行的位置u
,撤销:wq
,退出并 保存:q!
,退出并 不保存Ctrl + v
,进入 Vim 列编辑guu
,把当前行的字母全部转换成 小写gUU
,把当前行的字母全部转换成 大写g~~
,把当前行的字母是大写的转换成小写,是小写的转换成大写:saveas /opt/setups/text.txt
,另存到 /opt/setups/text.txt
- 删除
- 搜索
/YouMeek
,从光标开始处向文件尾搜索 YouMeek 字符,按n
继续向下找,按N
继续向上找?YouMeek
,从光标开始处向文件首搜索 YouMeek 字符,按n
继续向下找,按N
继续向上找
- 替换
:%s/YouMeek/Judasn/g
,把文件中所有 YouMeek 替换为:Judasn:%s/YouMeek/Judasn/
,把文件中所有行中第一个 YouMeek 替换为:Judasn:s/YouMeek/Judasn/
,把光标当前行第一个 YouMeek 替换为 Judasn:s/YouMeek/Judasn/g
,把光标当前行所有 YouMeek 替换为 Judasn:s#YouMeek/#Judasn/#
,除了使用斜杠作为分隔符之外,还可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符,该命令表示:把光标当前行第一个 YouMeek/ 替换为 Judasn/:10,31s/YouMeek/Judasn/g
,把第 10 行到 31 行之间所有 YouMeek 替换为 Judasn
Vim 的特殊复制、黏贴
- Vim 提供了 12 个剪贴板,分别是:
0,1,2,3,4,5,6,7,8,9,a,"
,默认采用的是"
,也就是双引号,可能你初读感觉很奇怪。你可以用 Vim 编辑某个文件,然后输入::reg
。你可以看到如下内容: - 复制到某个剪切板的命令:
"7y
,表示使用 7 号剪切板。 - 黏贴某个剪切板内容:
"7p
,表示使用 7 号剪切板内容进行黏贴
Vim 配置
- 我个人本地不使用 Vim 的,基本上都是在操作服务器的时候使用,所以这里推荐这个配置文件
- vim-for-server
- 在假设你已经备份好你的 Vim 配置文件后,使用该配置文件:
curl https://raw.githubusercontent.com/wklken/vim-for-server/master/vimrc > ~/.vimrc
- 效果如下:
- 需要特别注意的是,如果你平时粘贴内容到终端 Vim 出现缩进错乱,一般需要这样做:
- 进入 vim 后,按
F5
,然后shift + insert
进行粘贴。这种事就不会错乱了。 - 原因是:
vim ~/.vimrc
中有一行这样的设置:set pastetoggle=<F5>
- 进入 vim 后,按
其他常用命令
- 对两个文件进行对比:
vimdiff /opt/1.txt /opt/2.txt
资料
Vim 安装和配置、优化的更多相关文章
- Vim 安装、配置及复制粘贴操作
1.安装:sudo apt-get install vim 2.配置:cd ~ #进入用户主目录 touch .vimrc #.后缀文件不可见 vi .vimrc #打开文件 输入: set cind ...
- elasticsearch7.0安装及配置优化
简单讲ES开箱即用,不用任何配置也能玩转搜索引擎:以下内容是根据易企秀线上实际使用场景进行的安装和配置,支持冷热数据分离 1.安装 Linux 环境下载安装包 curl -L -O https://a ...
- Ubuntu 16.04 Vim安装及配置【转】
转自:http://www.cnblogs.com/ace-wu/p/6273031.html 安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate ...
- Ubuntu 16.04 Vim安装及配置
安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate vi | grep 'vi$' |xargs ls -al lrwxrwxrwx 1 root ...
- vim安装与配置
vim 8.0 安装 git clone https://github.com/vim/vim.git sudo apt-get install libncurses5-dev # vim依赖一个n ...
- MySQL5.7.9安装与配置优化
一. 环境准备 1. 下载软件包 wget http://test.hexin.cn/software/mysql-5.7.9.tar.gz -P /usr/local/src/ wget http: ...
- CentOS6 下Vim安装和配置
1.系统只安装了vim-minimal,执行以下命令安装另外两个组件 yum install vim-common yum install vim-enhanced 2.安装ctags yum ins ...
- Eclipse 环境安装和配置优化
1.下载相应的eclipse版本. 官方下载地址:http://www.eclipse.org/downloads/ juno版本的64位下载地址:http://www.eclipse.o ...
- vim 安装
Ubuntu 16.04 下 Vim安装及配置 默认已经安装了VIM-tiny linuxidc@linuxidc:~$ locate vi | grep 'vi$' |xargs ls -al lr ...
随机推荐
- 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制?
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注左上角编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的主从复制?哨兵机制? 在这个 ...
- python 生成器,迭代器,闭包,装饰器
1.生成器,迭代器,闭包,装饰器的优点 生成器就是一类特殊的迭代器 迭代器的优点也即生成器的优点: 1.节约内存.python在使用生成器时对延迟操作提供了支持. 2.迭代到下一次的调用时,所使用的参 ...
- 通过HttpClient的方式去Curd数据⭐⭐⭐⭐
在网上看博客的时候,看到这系列的文章,别特帮,强烈推荐 里面有一章节是通过HttpClient的方法去更新数据的,新颖,记录下. ⭐⭐⭐1:创建一个Model数据模型 这个类创建一个数据对象,Http ...
- 三个实用的javascript小技巧
从后向前获取数组元素 如果你想从后向前获取一个数组的元素,可以这样写: var newArray = [1, 2, 3, 4] console.log(newArray.slice(-1)) // [ ...
- 华为,小米部分机型微信浏览器rem不适配的解决方案
针对近日华为,小米的部分机型,在升级系统或升级微信之后,微信内置浏览器产生的rem不能正确填充满的问题,有如下解决方案 目前来看,产生这个情况的原因是因为给html附font-size时,附上的fon ...
- Nmap使用教程(进阶篇)
什么是防火墙? 防火墙是用来控制网络访问的软件或硬件.分为以下两类:1.基于主机的防火墙:2.基于网络的防火墙. 基于主机的防火墙 这是在单台主机上运行的软件,用来控制入站流量(从网络向主机)和出站流 ...
- [洛谷 P5053] [COCI2017-2018#7] Clickbait
Description 下图是一个由容器和管道组成的排水系统.对于这个系统,\(Slavko\) 想知道如果一直向容器1灌水,那么所有容器从空到充满水的顺序. 系统共有 \(K\) 个容器标号为1到 ...
- Redis系列-存储hash主要操作命令
Redis系列-存储篇hash主要操作函数小结 hash是一些列key value(field value)的映射表.常常用其存储一些对象实例.相对于把一个对象的各个字段存储为string,存储为ha ...
- 简单看看LockSupport和AQS
这次我们可以看看并发中锁的原理,大概会说到AQS,ReentrantLock,ReentrantReadWriteLock以及JDK8中新增的StampedLock,这些都是在java并发中很重要的东 ...
- (初学JS)JS基础——ATM机终端程序编写<1.0>
初步学习了JS基础,为了更好地将所学知识熟练运用,我进行了银行ATM存取款机的模拟程序编写,主要通过VScode终端实现系列操作. 我的ATM程序包括6个主要功能:1.查询余额 2.存钱 3. 取钱 ...