读书人

VI/VIM高级技艺征集中欢迎大家来交流

发布时间: 2013-01-04 10:04:17 作者: rapoo

VI/VIM高级技巧征集中,欢迎大家来交流,谢绝灌水!

[解决办法]
楼上的折叠我也经常用
set foldmethod=indent "折叠方式设置
map <F2> zO<CR>

另外我不喜欢鼠标闪烁
set gcr=a:block-blinkon0 ""取消鼠标闪烁

另外还有同时看两个文件 :vsp
[解决办法]
sp hello.c
[解决办法]
查找的时候
set hls
然后*在要查找的字符上
[解决办法]
复制n行
nyy

删除n行
ndd

找对应的{}
光标放在一个{}上,按'%',找到相对应的另一个{},

找单词
光标所在的单词上按'*' 可将此文件中光标所在的单词显示高亮,按N,n进行查找.

gg--->首行

G--->尾行




[解决办法]
好多哀~
45G 跳到45行
G跳到最后一行
$行尾

......不知道自己说的高级不,我很菜
好像有本vim 101 hacks不错
[解决办法]
ctrl+b 屏幕后翻动一页
ctrl+u 屏幕后翻动半页
ctrl+f 屏幕前翻动一页
ctrl+d 民间幕前翻动半页
[解决办法]
n<enter> 光标下移n行
:e! 重新加载文件
:w [filename] 另存一个名为filename的文件
[解决办法]
按 V 选中一些行,然后按 ‘=’ 这些代码就自动对齐了。
[解决办法]
:g/a/s//b/g
把a替换为b
[解决办法]
vim -d file1 file2 直接打开两个文件对比
CU这个帖子也是讨论这个的 已经10页了!
http://bbs.chinaunix.net/viewthread.php?tid=15797
[解决办法]

引用:
楼上的折叠我也经常用
set foldmethod=indent "折叠方式设置
map <F2> zO<CR>

另外我不喜欢鼠标闪烁
set gcr=a:block-blinkon0 ""取消鼠标闪烁

另外还有同时看两个文件 :vsp
vsp咋用啊?
[解决办法]
:copen
:make
双击错误跳转到错误出现地方
[解决办法]
整理这个还是有难度的。各种技巧太多了,如果不经常用很快就会忘了。看到哪个好用的,必须强化的多用几次才记得住。
不知道怎么算高级,随便贴一点吧:

w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏


Ctrl+b;向文件首翻一屏

[解决办法]
再贴一点。有好多都没用过。刚才试了几个,挺好玩的,不过还是记不住

依字母顺序的vi快速参考
# (这里#代表一个数字) 执行n次后面的命令...
: 进入ex模式
) 下一句
( 上一句
} 下一段
{ 上一段
]] 下一节
[[ 上一节
0 行的开头
$ 行的末尾
^ 行的第一个非空白字符
+ 下一行的开头
- 上一行的开头
(空格) 下一个字符
(回车) 下一行
/ 向前搜索
? 向后搜索
% 查找当前小(中,大)括号的匹配字符
, 逆向重复上一个f,F,t或T操作
; 重复上一个f,F,t或T操作
. 重复上一个操作
` 转到标记处
' 转到标记所在行的开头
`` 查找前回到上一个做标记的地方
' 查找前回到上一个做标记所在行的开头
~ 切换字符的大小写
" 保存到寄存器中
!! 重复上一次SHELL命令
! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落
送给命令fmt处理,然后用fmt返回的东西替换输出.)
>> 右移当前段落一个移动宽度(shiftwidth)
<< 左移当前段落一个移动宽度(shiftwidth)
>% 从当前到匹配小(中,大)括号之间的文本右移
<% 从当前到匹配小(中,大)括号之间的文本左移
(似乎漏了一个符号
[解决办法]
, 移动到某一列----译注)
a 在当前位置之后添加
A 在当前行的末尾添加
^a 没有使用
b 上一个单词的开头
B 上一个单词的开头,忽略标点符号
^b 上移一屏
c 覆盖...
C 覆盖到行末尾
^c 终止插入模式,在命令模式没有用
d 删除...
D 删除到行末尾
^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处
e 单词的末尾
E 单词的末尾,忽略标点符号
^e 屏幕下卷一行
f 查找...
F 向后查找...
^f 下移一屏
g 未用
G ...跳至[缺省是到文件末尾]
^g 显示状态栏
h 左移
H 屏幕上的第一行
^h 在插入模式下是退格,命令模式下是左移
i 在当前的位置前面插入
I 在本行的第一个非空白字符前面插入
^i 插入模式下是制表键,命令模式下未用
j 下移
J 把下一行合并到本行
^j 命令模式下是下移,插入模式下是建一个新行
k 上移
K 未用
^k 未用
l 右移
L 屏幕中的最后一行
^l 重绘屏幕
m 把当前位置标记到寄存器中
M 屏幕的中间行
^m 回车
n 重复上次查找
N 逆向重复上次查找
^n 命令模式下是下移
o 在当前行的下面建一个新行
O 在当前行的上面建一个新行
^o 未用
p 在当前行的下面粘贴
(译注--应为在当前位置的后面粘贴)
P 在当前行的上面粘贴
(译注--应为在当前位置的前面粘贴)
^p 命令模式下是上移
q 未用
Q 退出并且启动ex
^q 未用
r 覆盖当前的字符
R 在插入模式下一直覆盖字符
^r 在命令模式下面重绘屏幕
s 替换
S 替换整行
t 到...
T 向后到...
^t 移到下一个移动宽度(shifttab)处
u 撤消上一次操作
U 撤消对本行的所有修改
^u 上移半屏
v 未用
V 未用
^v 未用
w 下一个单词的开头
W 下一个单词的开头,忽略标点符号
^w 命令模式下未用,在插入模式下是到上一个单词的开头处
x 删除当前字符
X 删除前一个字符
^x 未用
y 复制...
Y 复制整行
^y 屏幕上卷一行
z 重新配置当前行周围的屏幕
ZZ 保存之后退出
^z 未用
(译注--在命令模式下,^z执行了UNIX暂停操作)

[解决办法]
0 G 跳到最后一行
:set nu 显示行号

编辑 /etc/vimrc 文件把命令输进去, 如显示行号, 下次打开VIM会自动执行
[解决办法]
刚看到原来G就可以直接到最后一行

还有有时按下ctrl+s vim就死了, 按下scroll-lock可以解锁
[解决办法]
光标在函数上时,大写的K可以立马转到man手册,也可用数字+K的方式

lz可以搜一下vimer这个关键字,有个博客,很厉害的~~~
[解决办法]
在符号{或者符号}上按=% 对当前{}之内的代码进行排版!
[解决办法]
set autoindent " auto indent
set smartindent " auto indent
在配置文件中添加上面两行可以在输入代码的时候自动缩放
------解决方案--------------------


vi 的命令太多了,的确需要整理一些最常用的
[解决办法]
整理了
[解决办法]
在配置文件中添加下面一行,在输入note的时候将自动出现函数描述,个人觉得比较实用。
ab note //===========================================================<CR>+Function:<CR>+Description:<CR>+Parameters:<CR>+Return:<CR>===========================================================
[解决办法]
我有笨电子版的教程,特全,需要的话Q我:287089376
[解决办法]


[解决办法]
1`23
456
[解决办法]
X 删除前一个字符
^x 未用
y 复制...
Y 复制整行
^y 屏幕上卷一行
z 重新配置当前行周围的屏幕
ZZ 保存之后退出
^z 未用
(译注--在命令模式下,^z执行了UNIX暂停操作)
是什么一死呀
[解决办法]
装个TipOfTheDay在vim里
每天看几条
很快就很牛 很快就看不上其他的编辑器
[解决办法]
gg=G
[解决办法]
xp ->交换光标后2个值的位置
dp->。。。。


[解决办法]
"ayy
"ap
/\<word\>
:bufers
:buffer n


[解决办法]
这个……
[解决办法]
很快就很好冷
[解决办法]
我常用的是gg=G,呵呵,整理代码格式
[解决办法]
路过~~~
[解决办法]
不错不错。。。
[解决办法]
不懂诶....
[解决办法]
不懂诶....
[解决办法]
哈,经常用的是先yy再p一行。。。
[解决办法]
vim能够自动补全么?
[解决办法]

引用:
vim能够自动补全么?


输入一个函数的前几个字母后,按CTRL+P就可以出现以你已经输入的字符串开头的函数列表了。
[解决办法]
vi与vim都不知道是什么哦?
[解决办法]
引用:
vi与vim都不知道是什么哦?
我也不知道是什么

[解决办法]
查看文件名字。
Ctrl+G
:f
[解决办法]
v进入Visual mode
选择你要的区域
:w filename
把文件的一部分弄到另一个文件当中。
:w >> filename
上面那个指append to filename
[解决办法]
w和b向前和向后移动一个word
以前不懂的时候大部分使用上下左右箭头。
[解决办法]
最一般的$HOME/.vimrc文件,这个是我每次安装系统必须配置的最基本的。
:set hlsearch
:set backspace=2
:set autoindent
:set showmode
:syntax on
filetype on
filetype plugin on
filetype indent on
上面有些可能和/etc/vimrc中的一些配置重复了。没有怎么关注vimrc文件。
[解决办法]
好不容易等到有人回复一个。原来csdn不能连续回复三次的。还有一个以非root的身份打开一个想要编辑的文件如何保存?
:w !sudo tee %
[解决办法]
好贴~~~
[解决办法]
引用:
VIM很强大, 我还是喜欢用source insight, 或者 code::blocks, GUI界面用起来爽.

我恰恰和你相反。GUI伤眼睛。我喜欢黑色的背景。
[解决办法]
gg<Ctrl+q>G$A;<Esc>
每行后面加一个分号,呵呵
[解决办法]
引用:
ctrl+b 屏幕后翻动一页
ctrl+u 屏幕后翻动半页
ctrl+f 屏幕前翻动一页
ctrl+d 民间幕前翻动半页

H
M
L
分别定位屏幕的上面中间和下面。
[解决办法]
引用:
好多哀~
45G 跳到45行
G跳到最后一行
$行尾



......不知道自己说的高级不,我很菜
好像有本vim 101 hacks不错


请问如何获取该本书?
[解决办法]
x wq ZZ
哈哈,打酱油
[解决办法]
路过,看看
[解决办法]
给一些,我常用的


shift +~ 大小写转换--命令模式
shift+G 调转到指定行。
:w
:q
:wq

!v 打开上次操作的文件。
table 不全和查找
。。。。。。。。
[解决办法]
ctrl+r 撤销操作!
[解决办法]
行号 gg
[解决办法]
非常有价值和意义的贴,收藏之
[解决办法]
"+y{motion} 将内容复制到系统剪切板
"+p 将系统剪切板内容paste
zz 将光标行置于屏幕中央
[解决办法]
这个要支持的~~~
[解决办法]
set nohlsearch 取消高亮
[解决办法]
呵呵,捡了几个命令回去,尤其那个文件比较的,不用还不知道

我说几个吧

第一个也是偷来的
光标移动到代码段 (xxxxxxxx) 中间,按ci(能删除括号内内容自动进入插入模式,同理有
ci" ci<(编辑xml标签一类用) 比如 <hello world!> 光标移动到任意一个字母中间,按ci<(ci>也是可以的),就会删除hello world!保留<>并且自动进入插入模式

第二个,
ctrl-p的技巧学习了,我还不知道呢,再说一个ctrl-N,它会自动完成你文章中已经用过的单词

此外再提及一个题外话,说到看代码
Linux上,可以wine跑SI,用eclipse,VI,kscope(不好用)等等,SI跟Eclipse一样,按ctrl就可以跳转到元素的定义,不用老去按ctrl-= :-) 科学家研究证明过 黑底白字对眼睛的损害比白底黑字大,总之我如果用SI的话,会用淡绿底色,然后字体调得巨大
[解决办法]
Good materal!
[解决办法]
缓冲区管理
:e打开,新规做成
:ls标识缓冲区list
:bp前一个buffer
:bn下一个buffer
:b[buffer号]标识制定号码的buffer
:b#表示刚才打开的buffer
:bdbuffer删除


[解决办法]
ctags的使用,也是老生常谈了,算不上高级:)

1.$ ctags -R * 生成tag文件
2.$ vi -t tag (请把tag替换为想要查找的变量或函数名)
3. Ctrl + ] step into
4. Ctrl + T step out
:syntax on 高亮语法显示

这些在使用vi阅读代码的时候很有用。

[解决办法]
楼上的折叠我也经常用
set foldmethod=indent "折叠方式设置

[解决办法]
倒序
:g/^/m0

从第二行倒序
:g/^/m1

[解决办法]
set nu 显示行号
[解决办法]
:set ic 字符串匹配的时候不区分大小写
:set noic 字符串匹配的时候区分大小写
[解决办法]
在起始行mk ,再移动到结束行" ay 'k ,再在另一文件中(也可在当前文件)p一下,即可实现块拷贝。
熟练使用可以大大减少敲代码的量。

读书人网 >UNIXLINUX

热点推荐