Tag Archive: vim

六月 29th, 2017

1、centos7安装vim

yum -y install vim(简单粗暴安装方法)

 

2、在vim中显示中文不出现乱码

vim ~/.vimrc (~/.vimrc为vim配置文件)

输入:

set fileencodings=utf-8,gb2312,gbk,gb18030

set termencoding=utf-8

set fileformats=unix

set encoding=prc

 

3、~/.vimrc

~表示root目录

.表示隐藏文件

ls -a /root/     会显示.vimrc文件

cat .vimrc       直接查看.vimrc中的内容

 

TAGS: ,
一月 27th, 2017

Vim 编辑器是一个基于命令行的工具,是传奇编辑器 vi 的增强版。尽管图形界面的富文本编辑有很多,但是熟悉 Vim 对于每一位 Linux 的使用者都能有所帮助——无论你是经验丰富的系统管理员,还是刚上手树莓派的新手用户。

这个轻量级的编辑器是个非常强大的工具。在有经验的使用者手中,它能完成不可思议的任务。除了常规的文本编辑功能以外,它还支持一些进阶特性。例如,基于正则表达式的搜索和替换、编码转换,以及语法高亮、代码折叠等的编程特性。

使用 Vim 时有一个非常重要的一点需要注意,那就是按键的功能取决于编辑器当前的“模式”。例如,在“普通模式”输入字母j时,光标会向下移动一行。而当你在“插入模式”下输入字符,则只是正常的文字录入。

下面就是速查表,以便于你充分利用 Vim。

基本操作

快捷键 功能
Esc 从当前模式转换到“普通模式”。所有的键对应到命令。
i “插入模式”用于插入文字。回归按键的本职工作。
: “命令行模式” Vim 希望你输入类似于保存该文档命令的地方。

方向键

快捷键 功能
h 光标向左移动一个字符
jCtrl + J 光标向下移动一行
kCtrl + P 光标向上移动一行
l 光标向右移动一个字符
0 (数字 0)移动光标至本行开头
$ 移动光标至本行末尾
^ 移动光标至本行第一个非空字符处
w 向前移动一个词 (上一个字母和数字组成的词之后)
W 向前移动一个词 (以空格分隔的词)
5w 向前移动五个词
b 向后移动一个词 (下一个字母和数字组成的词之前)
B 向后移动一个词 (以空格分隔的词)
5b 向后移动五个词
G 移动至文件末尾
gg 移动至文件开头

浏览文档

快捷键 功能
( 跳转到上一句
) 跳转到下一句
{ 跳转到上一段
} 跳转到下一段
[[ 跳转到上一部分
]] 跳转到下一部分
[] 跳转到上一部分的末尾
][ 跳转到上一部分的开头

插入文本

快捷键 功能
a 在光标后插入文本
A 在行末插入文本
i 在光标前插入文本
o (小写字母 o)在光标下方新开一行
O (大写字母 O)在光标上方新开一行

特殊插入

快捷键 功能
:r [filename] 在光标下方插入文件 [filename] 的内容
:r ![command] 执行命令 [command] ,并将输出插入至光标下方

删除文本

快捷键 功能
x 删除光标处字符
dw 删除一个词
d0 删至行首
d$ 删至行末
d) 删至句末
dgg 删至文件开头
dG 删至文件末尾
dd 删除该行
3dd 删除三行

简单替换文本

快捷键 功能
r{text} 将光标处的字符替换成 {text}
R 进入覆写模式,输入的字符将替换原有的字符

复制/粘贴文本

快捷键 功能
yy 复制当前行至存储缓冲区
["x]yy 复制当前行至寄存器 x
p 在当前行之后粘贴存储缓冲区中的内容
P 在当前行之前粘贴存储缓冲区中的内容
["x]p 在当前行之后粘贴寄存器 x 中的内容
["x]P 在当前行之前粘贴寄存器 x 中的内容

撤销/重做操作

快捷键 功能
u 撤销最后的操作
Ctrl+r 重做最后撤销的操作

搜索和替换

快捷键 功能
/search_text 检索文档,在文档后面的部分搜索 search_text
?search_text 检索文档,在文档前面的部分搜索 search_text
n 移动到后一个检索结果
N 移动到前一个检索结果
:%s/original/replacement 检索第一个 “original” 字符串并将其替换成 “replacement”
:%s/original/replacement/g 检索并将所有的 “original” 替换为 “replacement”
:%s/original/replacement/gc 检索出所有的 “original” 字符串,但在替换成 “replacement” 前,先询问是否替换

书签

快捷键 功能
m {a-zA-Z} 在当前光标位置设置书签,书签名可用一个大小写字母({a-zA-Z})
:marks 列出所有书签
{a-zA-Z} 跳转到书签 {a-zA-Z}

选择文本

快捷键 功能
v 进入逐字可视模式
V 进入逐行可视模式
Esc 退出可视模式

改动选中文本

快捷键 功能
~ 切换大小写
d 删除一个词
c 变更
y 复制
> 右移
< 左移
! 通过外部命令进行过滤

保存并退出

快捷键 功能
:q 退出 Vim,如果文件已被修改,将退出失败
:w 保存文件
:w new_name 用 new_name 作为文件名保存文件
:wq 保存文件并退出 Vim
:q! 退出 Vim,不保存文件改动
ZZ 退出 Vim,如果文件被改动过,保存改动内容
ZQ 与 :q! 相同,退出 Vim,不保存文件改动

下载 Vim 快捷键速查表

仅仅是这样是否还不足以满足你?别担心,我们已经为你整理好了一份下载版的速查表,以备不时之需。

点此下载(英文)

TAGS: ,
十二月 15th, 2016

1. vi 与 vim 有什么区别呢,它们之间有什么关系?

答:简单的讲,vi编辑器是UNIX早期自带的文本编辑器,更能简单,不支持语法颜色;vim编辑器是在vi的基础上改进的版本,比vi功能更强大,支持语法颜色。vim是vi的升级版。

2. 如何查看当前系统vim的版本?

答:vim –version 或者 rpm -qa |grep vim

3. 如果想把文档中出现的全部”abc”替换成”def”怎么做?又如何只替换每行中出现的第一个”abc”呢?

答:1,$s/abc/def/g或者%s/abc/def/g,不加g就只替换每行第一个“abc”

4. 当搜索某个关键词时,光标所定位的关键词所在的行是如何决定的?也就是说,光标是定位到最顶端出现的关键词的那行还是最底端关键词出现的那行,还是另外的情况?如果想从当前关键词移动到下一个关键词怎么操作?移动到上一个关键词又怎么操作?

答:1.正搜索使用/,光标定位到最顶端出现关键词的行,n移到下一个关键词,N移到上一个关键词

2.逆搜索使用?,光标定位到最低端出现关键词的行,N移到下一个关键词,n移到上一个关键词

5. 当编辑完文档后,按ESC进入命令模式,输入命令 😡  会怎么样?

答:命令:x会保存退出,相等于命令:wq

6. 在一般模式下如何快速的把光标快速的向右或向左移动10个字符?

答:向左移动10个字符:10h或10←

向右移动10个字符:10l或10→

7. vim + filename 表示什么含义, vim +10 filename 将会发生什么?

答:vim filename表示以vim编辑器打开文件filename,如果不存在则创建,光标定位到第一行行首。vim +10 filename表示以vim编辑器打开文件filename,如果不存在则创建,如果内容行数大于等于10行则光标定位到第10行行首,如果不足10行则光标定位到最后一行行首。

8. 用vim打开一个文档后,我想让光标跳到第20行,怎么做?跳到最后一行怎么做?

答:让光标调到第20行:20G

让光标调到最后一行:G

9. vim 打开文档后,默认是不显示行号的,如何做让它显示行号?

答:命令模式下输入:set no

10. vim打开文档后,我想把20-50行中的第一个’abc’ 替换为 ‘efg’ 怎么操作?如果是想替换所有呢?

答:(1) 20,50s/abc/efg/

(2) 20,50s/abc/efg/g 替换20-50行所有‘abc’为’efg’

1,$s/abc/efg/g 或%s/abc/efg/g 替换全文所有’abc’为’efg’

11. vim打开文档后,如何快速删除前100行?

答:将光标定位到第一行,然后输入100dd

12. vim打开文档后,如何复制一行,并粘贴到第20行的下面?

答:首先将光标定位到要复制的行,然后输入 yy 复制该行,接着输入 “20G”指定到第20行,最后按小写字母“P”粘贴即可。

TAGS: ,
九月 29th, 2016

下载vim源码:http://www.vim.org/sources.php

设置编译选项, 我的配置是:

./configure  –prefix=/usr/local/vim \

            –enable-multibyte \ 
            –enable-fontset \ 
            –enable-xim  \ 
            –enable-gui=auto \ 
            –enable-pythoninterp=dynamic \ 
            –enable-pythoninterp \ 
            –enable-python3interp=dynamic \ 
            –enable-rubyinterp=dynamic \ 
            –enable-rubyinterp \ 
            –enable-perlinterp \ 
            –enable-cscope \ 
            –enable-sniff \ 
            –with-x  \ 
            –with-compiledby=erocpil  \ 
            –with-features=huge \ 
            –enable-luainterp=dynamic  \ 
            –with-python-config-dir=/usr/lib/python2.7/config \ 
            –with-python3-config-dir=/usr/lib/python3.2/config

其他选项参见 ./configure –help

补充说明:

CentOS上编译时不支持“–enable-multibyte”

Debian上编译时不支持“–enable-fontset”

TAGS: ,
四月 18th, 2016

在命令行模式键入

1.定位任意行:+行数
2.定位第一行或者最后一行:0和:$,或者1G和G即可,G一定是大写奥!
3.显示当前光标所在行的行号:nu
4.显示所有行当行号显示:set nu
5.显示所有行当行号显示取消:set nonu