设为首页 收藏本站
查看: 797|回复: 0

[经验分享] 怎样用Vi 编程3 附有 自己主写python的VIMRC :)

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2015-4-25 06:20:34 | 显示全部楼层 |阅读模式
  距离前两次写完日志又有一段时间了,用的越来越多,慢慢又发现了几个小功能
  前两次的日志,大家喜欢VIM的可以看下,
  VI 编程1 http://www.iyunv.com/amaoxiaozhu/archive/2012/03/23/2414007.html
  VI 编程2 http://www.iyunv.com/amaoxiaozhu/archive/2012/04/05/2423009.html
  好了不多说,开始新的旅程:
  1.  编辑篇:
  H M L 屏幕的顶、中、底部     [不用再费心去想是8j 还是12j 了,一键搞定~]
  gf          编辑光标处的文件名  [最推荐这个了~ 很强大的功能!]
  '.           上次修改位置
  ctrl + o | i    光标位置回溯
  ls |vi -        编辑管道输出
  
  2.  模块篇:
  前提是安装了NERDTree~
  
  使用某个模块:vi -c NERDTree
  直接打开文件夹可以使用 vi . 或 vi 文件夹路径
  
  3.  进制篇
  :%!xxd 将当前的文本转换为16进制。大端法
  :%!od 将当前的文本转换为8进制。
  :%!xxd -r将当前的文本转换回文本格式。
  :%!hexdump将当前的文本转换回16进制,小端法显示。
  注:小端法可以理解的内存显示模式(不准确)。大端法可以理解为实际模式。
  
  4.  其他命令篇
  %表示文件的所有行,!xxd表示外部命令,结合在一起,就是当把当前vim上显示的所有的行传递给xxd,xxd处理后的结果重新显示在vim上。
  整理文件:gg=G
  G 跳到文件末尾
  vim 编辑加密文件vi -x file 会指定加密密码
  g; 上次修改位置
  ctrl-c 或[ : 直接退出编辑模式 [神一般的快捷键啊]
  @: 重复上次的执行命令
  "2p: 拷贝从第二次到刚才复制过的内容
  
  5.  查找篇
  f 同一行内查找字符 f( 查找(
  ; 重复上次查找 c;修改到下一个查找的字符
  df 删除同一行内到某个字符的内容
  :g/waf 显示所有的包含waf行的内容
  :g/waf/# 同时显示行号
  / 查找光标处的单词
  /keyword/1    光标定位在查找单词的下一行
  /keyword/e+1 光标定位在查找单词的结束位置右侧+1
  /keyword/s-1  光标定位在查找单词的开始位置左侧 -1
  / / else  上次搜索单词+else
  3ft 查找行内的第三个't'
  
  6. python代码的tags生成
  在tools/scripts 路径下,有python专门为VI提供的tags生成器 ptags.py
  在我的环境中我按照这个方式配置了tags:
  1. 在自己的开发目录下生成python库的



     python ptags.py $(find . /usr/lib/python2.5/ -name '*.py'|grep -v 'git')
  【很少会查到git的库,leave it】
  2. 编辑.vimrc



  set tags=tags;
   set autochdir
  首先使用当前目录获取tags【后续开发,可以在新目录中生成子tags】
  否则就继续向上搜索
  
  附: 如果你也是一个python coder ~ 握个爪



set autoindent
set syntax=on
set nocp
set softtabstop=4
filetype plugin on
colorscheme IDLE
let g:pydiction_location='/root/conf/vi/complete-dict'
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window = 1
set tags=tags;
set autochdir
map   mz?(*)yyggpA;'z  " 创建函数原型
imap   mz?(*)yyggpA;'zA
map  :call Test()            " 调试
imap  :call Test()
map   :Grep        " 全局搜索
imap   :Grep
map  i#j0                " 注释
imap  i#j0
map  0Ji                "对齐 平级
imap  0Ji
map  0Ji                "对齐 增加缩进
imap  0Ji   
map  0JiXXXX            "对齐 减少缩进
imap  0JiXXXX
function Python_Test()
let mp = &makeprg
let ef = &errorformat
let exeFile = expand("%:t")
setlocal makeprg=python\ -u
set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
silent make %
copen
let &makeprg     = mp
let &errorformat = ef
endfunction
function C_Test()
let cmd = "!gcc "
let option = "-O2 "
if search("math\.h") != 0
let option .= " -lm "
endif
exec cmd. " % " .option
endif
exec "!./a.out"
copen
endfunction
function Test()
exec "w"
if    &filetype == "c"
exec "call C_Test()"
elseif &filetype == "python"
exec "call Python_Test()"
endif
endfunction


  Enjoy VI Enjoy Code!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60326-1-1.html 上篇帖子: Python访问配置文件 下篇帖子: python 遍历文件夹 文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表