论坛首页 综合技术论坛

vim 学习纪要 -- 自己动手搭建IDE

浏览 1852 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-12-24  
vim

从无到有学习vim开发环境搭建
vi  (http://baike.baidu.com/view/908054.htm)
vim (http://baike.baidu.com/subview/113188/9338173.htm)

[esc|i|:] 模式切换

插入模式
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行


命令模式
[h]、[j]、[k]、[l] 左 下 右 上
v 进入行模式,V 进入列模式 , ~ 切换大小写,

. 重复上一次命令

撤销更改
u 撤销,ctrl + r 恢复撤销的更改

删除
D 从光标处删除至行尾,dd 删除一行,dw 删除一个单词,
x 删除光标后一个字符,#x 删除光标后第#个字符
X 删除光标前一个字符,#X 删除光标前第#个字符
dj 删除至下一行,dk 删除至上一行,d^ 删除到行首,d$删除到行尾


替换
r 替换光标所在处的字符,R替换光标所到之处的字符,直到按esc为止

更改
cw 更改光标所在处的字到字尾处,c#w表示更改#个字

剪切且进入插入模式 c
c$ 剪切到行末

复制与粘贴
yy 复制一行,yw 复制一个单词;p 在当前光标后粘贴,P 在当前光标前粘贴
#yw 复制#个字到缓冲区,#yy 拷贝从光标所在的该行“往下数”#行文字


底行模式

w filename , wq 存盘并退出 , q! 退出不存盘,x 保存并退出

# 跳转到第#行

搜索
/ {字符串} 回车 搜索,n 查找下一个,N 查找上一个
? {字符串} ,同/ 但是是反方向

s /from/to/g 查找并替换

搜索或者替换的时候偶尔忽略大小写,加 \c,如 /naa\c


配置文件
1. 配置文件未知 :version 得到echo $VIM , echo $HOME 从而定位到配置文件
2. $VIM\_vimrc 文件
3. vim -u file 指定配置文件;vim -u NORC不读取任何配置文件
4. 配置文件中使用 " 作为注释符号


常用配置文件内容
set nocompatible         "关闭 vi 兼容模式
set nu                    "显示行号
colorscheme desert         "设定配色方案

syntax enable
syntax on       

set nobackup                "覆盖文件时不备份
set autochdir               "自动切换当前目录为当前文件所在的目录

set magic                   "显示括号配对情况
set laststatus=2            "显示状态栏 (默认值为 1, 无法显示状态栏)

set tabstop=4                "设置tab制表符为4个空格
set autoindent                "自动对齐

set showtabline=4           "显示tab标签名称(即时仅有1个文件被打开时)

set ignorecase             "忽略大小写(ic)
set noignorecase         "不忽略大小写(noic)

set smartindent "开启新行时使用智能自动缩进
set smartindent shiftwidth=4 "C语言自动缩进,缩进值为4个字符宽度

set ruler  "显示光标行列信息

set list "显示制表符
filetype on "检测文件的类型

set history=1000 "记录历史的行数

set showmatch    "设置匹配模式,输入左括号会出现右括号

"修改文件自动备份
if has("vms")
    set nobackup
else
    set backup
endif






多文件操作

vim -o file ... 同时打开多个文件, ^w + j|down 向下;^w + k|up 向上
:split file ... 在编辑器中打开多个文件,如果不带参数则对当前文件分割


进阶操作


1. 标记
:marks列出所有标记,m 做标记,' 移动到标记的行首,` 移动到标记的光标位置
m{a-z}:在当前光标的位置标记一个书签,名字为 a-z 的单个字母,名字只能是小写字母
`a 到书签a处,'a 移动到书签a处的行首
`. 上上次编辑文件的地方

2. 移动光标
0 行首,$ 行末,^ 行首第一个字母;
gg 文章头(仅vim),G 文章尾;#l 移到行第#列,b 上个字开头
e 向前移至单词尾,E 同e 但忽略标点;w 向前移至单词首,W 同w 但忽略标点
ctrl + b 屏幕向后移动一页,ctrl + f 屏幕向前移动一页
ctrl + u 屏幕向后移动半页,ctrl + d 屏幕向前移动半页

#G 移动光标至文章的第#行行首,ctrl + g 列出光标所在行的行号
#$ 移动光标至屏幕的第#行行末

H  光标移动到当前屏幕的行首,#H 移到第#行首
dH 删除从光标当前所在行至所显示屏幕首行的全部内容

M  光标移动到当前屏幕中间行的行首
dM 删除从光标当前所在行至屏幕中间行的全部内容

L  光标移动到当前屏幕最底行的行首,#L 移到第#行首(从低向上数)
dL 删除从光标当前所在行至屏幕最底行的全部内容

( 移动光标到上一个句子,) 移动光标到下一个句子
* 读取光标处的字符串,并且移动光标到它再次出现的地方
% 在成对的括号等符号间移动,将光标放到任意符号上,按%


3. 切换大小写gu/gU
gg gu G 从头到尾切换成小写,gg gU G从头到尾切换成大写
H gu G 从屏幕头到文件尾切换成小写
H gu L 从屏幕头到屏幕尾切换成小写

只转化某个单词
gu[#]w ,gu[#]e,gU[#]w,gU[#]e

转换几行的大小写

#gu/#gU 从光标所在行往下再数#行都进行转换

gU0  从光标所在位置到行首,都变为大写
gU$  从光标所在位置到行尾,都变为大写
gUG  从光标所在位置到文章最后一个字符,都变为大写
gU1G 从光标所在位置到文章第一个字符,都变为大写


4. 关键词自动完成
只需要输入开始几个字母,按C-N或C-P


5.多重剪贴板(使用寄存器的命令为双引号")
:reg 列出当前定义的所有寄存器名和它们的内容

使用小写字母来定义寄存器
"kyy 拷贝当前行到寄存器 k
"kp  粘贴寄存器 k 里面的内容





论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics