使用vim的妙招
使用F1执行文件
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器。
我们Linux运维经常在Linux中使用到Vim编辑器,当使用Vim写shell脚本或者python脚本的时候,想要运行测试时候怎么办?Esc:wq,到shell终端执行脚本。
上述情况很复杂,有木有!!
下面咱设置vim配置文件,让Vim编辑器在不退出就能执行脚本:
创建并编辑当前用户的vim配置文件
#vim ~/.vimrc
添加如下代码:
"""""""""""""""""""""""""""""""""""""""""""""""""""
"Programming makes the world better
"""""""""""""""""""""""""""""""""""""""""""""""""""
map <F1> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec '!g++ % -o %<'
exec '!time ./%<'
elseif &filetype == 'cpp'
exec '!g++ % -o %<'
exec '!time ./%<'
elseif &filetype == 'python'
exec '!time python %'
elseif &filetype == 'sh'
:!time bash %
endif
endfunc
再尝试一下编写脚本
ESC退出输入模式,直接按F1
至此,我们就可以不退出Vim编辑器,直接执行文件了!!
同理:shell脚本也可以哦!!
自动添加脚本头
当做运维的时候,难免会写一些脚本。有没有感到Vim编辑文件的时候,一定要写脚本头,很复杂很繁琐,每写一个脚本就要写一次。
太麻烦了。有木有!!(可能是我太懒了吧)
下面咱定义一下,当写脚本的时候,自动添加脚本头,咱直接去写脚本代码就好了。
编辑当前用户vim配置文件
#vim ~/.vimrc
或者定义全局也行
#vim /etc/vimrc
在最下方添加如下代码:
function HappyPython()
call setline(, "#!/usr/bin/env python")
call append(, "#-*- coding:utf8 -*-")
normal G
normal o
endf
autocmd bufnewfile *.py call HappyPython()
function HappyShell()
call setline(, "#!/bin/bash")
normal G
normal o
endf
autocmd bufnewfile *.sh call HappyShell()
保存退出后,我们试试开始使用vim编辑.py文件和.sh文件
就会发现py文件会自动添加了python脚本头!
sh文件自动添加了shell脚本头!
vim编辑python脚本时Tab补全
Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件。
安装git软件包,这里就简单的yum安装了
下载Pydiction
mkdir ~/.vim
mkidr ~/.vim/bundle
cd ~/.vim/bundle
#这里我们也可以自己下载好上传到linux系统中
git clone https://github.com/rkulla/pydiction.git
配置pydiction
#- UNIX/LINUX/OSX: Put python_pydiction.vim in ~/.vim/after/ftplugin/
#- WINDOWS: Put python_pydiction.vim in C:\vim\vimfiles\ftplugin\
# Assuming you installed Vim to C:\vim\
cp -r ~/.vim/bundle/pydiction/after/ ~/.vim
编辑vim配置文件,并配置如下代码
# cat .vimrc
filetype plugin on
let g:pydiction_location = '/root/.vim/bundle/pydiction/complete-dict'
let g:pydiction_menu_height =
此处有坑请注意!!
代码第二行,使用find命令查找一下自己的complete-dict文件路径,一定要写对哦!
最终效果:
转:
https://www.cnblogs.com/rampb/p/6183076.html
https://birdteam.net/124482
最新文章
- XTREE随笔
- UVA 11384 正序数排列
- Python全栈开发day5
- VIM 常用错误解决
- iOS中JS 与OC的交互(JavaScriptCore.framework)
- ASP.NET MVC 分部视图
- Windows下64位Apache服务器的安装
- IBatis.Net 批量插入数据
- 【zendstudio】如何利用zendstudio新建 或导入php项目
- perconaXTRADB Cluster在Redhat Linux上的安装
- 一个使用MVC3+NHibernate “增删改查” 的项目
- erlang程序优化点的总结(持续更新)
- Beta 冲刺day 6
- win 执行puppet
- .net core2.1 使用 dynamic 类型报错
- Linux系统常用升级的基础包
- windows 安装mysql 5.7的正确姿势
- ionic2/3注册安卓返回
- 在python中读写matlab文件
- YOLO object detection with OpenCV