ubuntu下使用Vim学习C++
来源:互联网 发布:视频混合软件 编辑:程序博客网 时间:2024/05/28 04:55
安装
开发环境:
系统:ubuntu 16.04LTS。
工具:Vim7.4
编译,链接,运行:g++
现在贴上Vim的安装命令:
sudo apt-get install vim-gtk//or sudo apt-get install vim
简易配置
sudo vim /etc/vim/vimrc
imput this in the last columns
这里写代码片
set nu // 在左侧行号set tabstop //tab 长度设置为 4set nobackup //覆盖文件时不备份"set smartindent set cursorline //突出显示当前行set ruler //在右下角显示光标位置的状态行set autoindent //自动缩进
编译C++
vim demo.cpp:wqg++ ./demo.cpp./a.out
配置Gvim/vim。
用于Gvim 或 Vim 配置文件的一键编译与运行函数(注:需要机器上安装了GCC才行, minGW)
本代码只加入了对C/C++的编译与运行,如果要加入其语言的可以参考此代码加入即可
同时,本代码加入了对Windows下用Gvim编译UTF-8编码格式的源文件时中文乱码的解
决方法(也就是在编译选项中加入了 “-fexec-charset=gbk”)。
将上面的代码加入到_vimrc文件里即可
"------------------------------------------------------------------------------" < 判断操作系统是否是 Windows 还是 Linux >"------------------------------------------------------------------------------if(has("win32") || has("win64") || has("win95") || has("win16")) let g:iswindows = 1else let g:iswindows = 0endif"------------------------------------------------------------------------------" < 判断是终端还是 Gvim >"------------------------------------------------------------------------------if has("gui_running") let g:isGUI = 1else let g:isGUI = 0endif"------------------------------------------------------------------------------" < 编译、连接、运行配置 >"------------------------------------------------------------------------------" F9 一键保存、编译、连接存并运行map <F9> :call Run()<CR>imap <F9> <ESC>:call Run()<CR>" Ctrl + F9 一键保存并编译map <c-F9> :call Compile()<CR>imap <c-F9> <ESC>:call Compile()<CR>" Ctrl + F10 一键保存并连接map <c-F10> :call Link()<CR>imap <c-F10> <ESC>:call Link()<CR>let s:LastShellReturn_C = 0let s:LastShellReturn_L = 0let s:ShowWarning = 1let s:Obj_Extension = '.o'let s:Exe_Extension = '.exe'let s:Sou_Error = 0let s:windows_CFlags = 'gcc\ -fexec-charset=gbk\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'let s:linux_CFlags = 'gcc\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'let s:windows_CPPFlags = 'g++\ -fexec-charset=gbk\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'let s:linux_CPPFlags = 'g++\ -Wall\ -g\ -O0\ -c\ %\ -o\ %<.o'func! Compile() exe ":ccl" exe ":update" if expand("%:e") == "c" || expand("%:e") == "cpp" || expand("%:e") == "cxx" let s:Sou_Error = 0 let s:LastShellReturn_C = 0 let Sou = expand("%:p") let Obj = expand("%:p:r").s:Obj_Extension let Obj_Name = expand("%:p:t:r").s:Obj_Extension let v:statusmsg = '' if !filereadable(Obj) || (filereadable(Obj) && (getftime(Obj) < getftime(Sou))) redraw! if expand("%:e") == "c" if g:iswindows exe ":setlocal makeprg=".s:windows_CFlags else exe ":setlocal makeprg=".s:linux_CFlags endif echohl WarningMsg | echo " compiling..." silent make elseif expand("%:e") == "cpp" || expand("%:e") == "cxx" if g:iswindows exe ":setlocal makeprg=".s:windows_CPPFlags else exe ":setlocal makeprg=".s:linux_CPPFlags endif echohl WarningMsg | echo " compiling..." silent make endif redraw! if v:shell_error != 0 let s:LastShellReturn_C = v:shell_error endif if g:iswindows if s:LastShellReturn_C != 0 exe ":bo cope" echohl WarningMsg | echo " compilation failed" else if s:ShowWarning exe ":bo cw" endif echohl WarningMsg | echo " compilation successful" endif else if empty(v:statusmsg) echohl WarningMsg | echo " compilation successful" else exe ":bo cope" endif endif else echohl WarningMsg | echo ""Obj_Name"is up to date" endif else let s:Sou_Error = 1 echohl WarningMsg | echo " please choose the correct source file" endif exe ":setlocal makeprg=make"endfuncfunc! Link() call Compile() if s:Sou_Error || s:LastShellReturn_C != 0 return endif let s:LastShellReturn_L = 0 let Sou = expand("%:p") let Obj = expand("%:p:r").s:Obj_Extension if g:iswindows let Exe = expand("%:p:r").s:Exe_Extension let Exe_Name = expand("%:p:t:r").s:Exe_Extension else let Exe = expand("%:p:r") let Exe_Name = expand("%:p:t:r") endif let v:statusmsg = '' if filereadable(Obj) && (getftime(Obj) >= getftime(Sou)) redraw! if !executable(Exe) || (executable(Exe) && getftime(Exe) < getftime(Obj)) if expand("%:e") == "c" setlocal makeprg=gcc\ -o\ %<\ %<.o echohl WarningMsg | echo " linking..." silent make elseif expand("%:e") == "cpp" || expand("%:e") == "cxx" setlocal makeprg=g++\ -o\ %<\ %<.o echohl WarningMsg | echo " linking..." silent make endif redraw! if v:shell_error != 0 let s:LastShellReturn_L = v:shell_error endif if g:iswindows if s:LastShellReturn_L != 0 exe ":bo cope" echohl WarningMsg | echo " linking failed" else if s:ShowWarning exe ":bo cw" endif echohl WarningMsg | echo " linking successful" endif else if empty(v:statusmsg) echohl WarningMsg | echo " linking successful" else exe ":bo cope" endif endif else echohl WarningMsg | echo ""Exe_Name"is up to date" endif endif setlocal makeprg=makeendfuncfunc! Run() let s:ShowWarning = 0 call Link() let s:ShowWarning = 1 if s:Sou_Error || s:LastShellReturn_C != 0 || s:LastShellReturn_L != 0 return endif let Sou = expand("%:p") let Obj = expand("%:p:r").s:Obj_Extension if g:iswindows let Exe = expand("%:p:r").s:Exe_Extension else let Exe = expand("%:p:r") endif if executable(Exe) && getftime(Exe) >= getftime(Obj) && getftime(Obj) >= getftime(Sou) redraw! echohl WarningMsg | echo " running..." if g:iswindows exe ":!%<.exe" else if g:isGUI exe ":!gnome-terminal -e ./%<" else exe ":!./%<" endif endif redraw! echohl WarningMsg | echo " running finish" endifendfunc
0 0
- ubuntu下使用Vim学习C++
- Ubuntu下vim使用
- ubuntu下vim配置使用
- ubuntu下vim配置使用
- ubuntu下vim配置使用
- ubuntu下vim配置使用
- ubuntu下vim配置使用
- ubuntu下vim配置使用
- Ubuntu下 Vim的使用
- ubuntu下如何使用vim cscope ctags
- ubuntu下vim的使用与安装
- ubuntu下vim的安装和使用
- ubuntu下vim文本编辑器的使用
- ubuntu下vim的基本使用
- ubuntu下vim的简单使用记录
- ubuntu系统下使用vim 文本编辑器
- Ubuntu下LaTeX+vim安装与使用
- Ubuntu下vim使用不了,怎么安装
- css图片切割
- java反射机制
- 正则表达式
- 查看jdk Sun /Open Jdk 源码包说明
- 安卓内容提供者
- ubuntu下使用Vim学习C++
- 锋利的jquery初体验--第二章 品牌列表效果
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- log4j初级配置教程
- 在Mac OS X上开启ssh服务
- Hibernate学习(2)
- 【iOS】使用SQLite3的时候Swift3.、XCode8报错:Unsupported architecture - 'arm/arch.h'file not found - Could not
- 安卓横竖屏切换的配置
- n个不同的东西分给k个人,共有多少种分法