注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

dp: 生活的脚步,进步的点滴...

Cam、DSP、FPGA、PM、Life、More ...

 
 
 

日志

 
 

vim:指定搜索范围、打开大文件、十进制转换十六进制  

2012-01-29 09:40:19|  分类: 专业 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. vim如何指定搜索范围,不如在第n1~n2行之间进行搜索?
/\%>n1-1l\%<n2+1lkey
如:在第[2,3]行内搜a 则
/\%>1l\%<4la

2. [[ [] ][ ]]解释
第一个表示方向
[向前
]向后
第二个如果和第一个相同,表示首
第二个如果和第一个不同,表示尾
所以 ][表示向后找函数尾

3. vim复制如何包括光标所在字符?
yl
欲知更多,请:help selection

4. 剪切板技巧
ctrl r ctrl w 可以取出当前光标所在单词
ctrl r + 可以取出剪贴板的内容

5. 如何替换用*或者#搜索的字符串
用*搜索了一个字符串,想直接在:s/里用,不用以逐字敲入,使用ctrl-r /直接上。

6. 更改整个""内的东西,如:
I'm "hello world" man.
在""内按ci" 即可

同理,可用
ci( ci[
di( di[ di"

还可以ca", ca(, ca[等等。意思是连引号一起。
可惜也只是针对英文的括号,换成中文就不灵了。
7. 删除整个括号内的东西,包括{}()[]等
d%
或da{ da( da[
或df} df) df]

8. 打开大文件
vim并没有对打开大文件上做任何优化,打开超长行也是这样
vim是把文件全部读入内存,不象em等当打开超大文件时,是部分读取的
不过设置下,还是有些改善,把下面的放在vimrc里
开500M左右的文件在2G内存的状态下勉强可以接受
(100M文件)
================================================================
if !exists("my_auto_commands_loaded")
let my_auto_commands_loaded = 1
let g:LargeFile = 1024 * 1024 * 100
augroup LargeFile
autocmd BufReadPre * let f=expand("<afile>") | if getfsize(f) > g:LargeFile | set eventignore+=FileType | setlocal noswapfile bufhidden=unload buftype=nowrite undolevels=-1 | else | set eventignore-=FileType | endif
augroup END
endif

9.把一个文本文件中,所有不以cpp开头的行删除,
:v/^cpp/d 开头不允许有空格
或者
:v/^\s*cpp/d 开头允许有空格

:help :v

g/^\s*cpp/d

10. 十进制转换为十六进制可以用下面的方式实现:
:%s/\d\+/\=printf(“%X”, submatch(0))/g
但是这个对于负数,则无法识别。
此外,也无法将十六进制转换为十进制

:%s/-\(\d\+\)/\=printf("%X", 65536-submatch(1))/g
这个可以替换负数。65536是取16位表示。
从十六转到十进制,比较难。

十六进制转十进制:
:s/0x\(\x\+\)/\=str2nr(submatch(1), 16)
  评论这张
 
阅读(1101)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016