vim编译c++文件设置_vim中修改c++的原件-程序员宅基地

技术标签: 学习总结  

为了从codd::blocks平台转移到vim,最近几天花了好久研究vim,虽然也没有学会什么奇技淫巧,但是终于可以编译c++文件了。
vim和ide比起来,就是秒开,实在受不了vs的庞大,cb的丑陋。

  1. 安装并配置gcc环境
    gcc可以用CodeBlocks的目录下的MinGW,也可以从网上下一个重新安装(gcc下载地址
    接下来是依次打开计算机->系统属性->高级系统设置->高级->环境变量->用户变量->变量PATH(如果没有自己新建一个)->编辑写下MinGW的bin文件夹地址,我的是这样C:\MinGW\bin;最后用分号隔开
    之后按win(就是Ctrl和alt之间的按键)+r ,输入cmd,再输入g++ -v命令。
    如果出现下面的图就可以了
    成功安装

  2. 配置vim
    打开vim的配置文件_vimrc,一般在vim目录下。
    输入将下面代码复制进去,我的设置是按F6编译。
    这个文件中用 ” 可以注释

" 编译器选择
map <F6> :call CR()<CR>
func! CR()
exec "w"
exec "!g++ -O2 -g  % -o %<"
exec "! %<"
"exec "!g++ % -o %<"
"exec "! ./%<
endfun

3.写程序
一般可以在桌面上新建一个txt文件,再将它改名程a.cpp之类的直接拖进vim里面来写,还可以配置_vimrc文件来一键生成头文件之类的,具体的也是在那个文件中加入下面的代码,按F2可以生成。
模版来自kuangbin大神

"c++的头文件
map <F2> :call SetTitle()<CR>
func SetTitle()
let l = 0
let l = l + 1 | call setline(l,'/* ***********************************************')
let l = l + 1 | call setline(l,'Author        :xryz')
let l = l + 1 | call setline(l,'Email         :[email protected]')
let l = l + 1 | call setline(l,'Created Time  :'.strftime('%c'))
let l = l + 1 | call setline(l,'File Name     :'.expand('%'))
let l = l + 1 | call setline(l,'************************************************ */')
let l = l + 1 | call setline(l,'')
let l = l + 1 | call setline(l,'#include <stdio.h>')
let l = l + 1 | call setline(l,'#include <string.h>')
let l = l + 1 | call setline(l,'#include <iostream>')
let l = l + 1 | call setline(l,'#include <algorithm>')
let l = l + 1 | call setline(l,'#include <vector>')
let l = l + 1 | call setline(l,'#include <queue>')
let l = l + 1 | call setline(l,'#include <set>')
let l = l + 1 | call setline(l,'#include <map>')
let l = l + 1 | call setline(l,'#include <string>')
let l = l + 1 | call setline(l,'#include <math.h>')
let l = l + 1 | call setline(l,'#include <stdlib.h>')
let l = l + 1 | call setline(l,'#include <time.h>')
let l = l + 1 | call setline(l,'using namespace std;')
let l = l + 1 | call setline(l,'')
let l = l + 1 | call setline(l,'int main()')
let l = l + 1 | call setline(l,'{')
let l = l + 1 | call setline(l,'    //freopen("in.txt","r",stdin);')
let l = l + 1 | call setline(l,'    //freopen("out.txt","w",stdout);')
let l = l + 1 | call setline(l,'    ')
let l = l + 1 | call setline(l,'    return 0;')
let l = l + 1 | call setline(l,'}')
endfunc

再按f6就可以编译了,之后自己看着办吧

最后我的vim配置文件

"####默认设置
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      if empty(&shellxquote)
        let l:shxq_sav = ''
        set shellxquote&
      endif
      let cmd = '"' . $VIMRUNTIME . '\diff"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
  if exists('l:shxq_sav')
    let &shellxquote=l:shxq_sav
  endif
endfunction

"####基本设置

" 显示行号
set nu

" Tab键的宽度
set tabstop=4

" 自动缩进
set autoindent

" 语法高亮度显示
syntax on 

" 配色主题
set background=dark
colorscheme solarized

" 字体和大小
set guifont=Hack:h13

" 显示输入的命令
set showcmd

"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
s
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xinag578/article/details/44724255

智能推荐

Android程序员 ios开发之旅之遇见雨燕-程序员宅基地

文章浏览阅读434次。开发android想起来也有快3年了,对编程也由当初的满腔激情,现在也慢慢归于平淡,之前总想学一下ios开发,但是看到那 蛋疼的oc语法 ,想起java那优雅的链式编程,根本不敢下手;swift推出的初期,一直关注他 ,一直没有抽时间学他,早几天看了wwdc大会,并且swfit准备开源,我想,还不学他就来不及了 学习为啥发表博客,一是和大家分享自己的学习经验,和求教,二也是_遇见雨燕

获取中国移动光猫H2-2超管密码_h2-2管理员密码-程序员宅基地

文章浏览阅读1.3w次,点赞9次,收藏39次。获取中国移动光猫超级用户名密码_h2-2管理员密码

有关java通过反射机制调用类中自有方法的问题_java反射机制中类是对的,却找不到方法-程序员宅基地

文章浏览阅读770次。 相关文章: new Draggable("related_topics"); 在java中,通过其提供的反射机制,修改对象的accessible标志,以达到访问该对象成员时不检测访问权限的目的。 /*利用反射修改访问安全检测*/ public class B { public static void main(String[] a_java反射机制中类是对的,却找不到方法

sybase 设置默认值_修改Sybase数据库的默认字符集为CP936-程序员宅基地

文章浏览阅读506次。使用Sybase用户登录,然后登录Sybase 的Isql查询工具;$ isql –S192.168.0.3:5000 –Usa –P$ isql –Slinuxfiledb –Usa –P1> sp_helpsort2> go可以看到当前的默认字符集为 ISO8859-1,iso_1使用charset命令修改默认字符集$ charset –Slinuxfiled..._sybase设置字段默认值

使用pip安装tensorflow很慢的问题_为什么下pip install tensorflow==2.4.0很慢-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏2次。pip默认使用的是国外的源,国内网速有限制,可以使用国内源,这里推荐豆瓣的源:https://pypi.douban.com/simple安装时使用-i指定sudo pip3 install tensorflow -ihttps://pypi.douban.com/simple速度飞快。_为什么下pip install tensorflow==2.4.0很慢

[Python] 判断数组是否存在重复元素_重复元素判定python代码-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏10次。本文主要讲解如何使用Python判断数组是否存在重复元素_重复元素判定python代码

随便推点

dm642的视频口输出 分类: DSP 201...-程序员宅基地

文章浏览阅读80次。void VP1_EDMA(int displayMode,unsigned int w,unsigned int h){ unsigned int i=0,k=0;EDMA_Handle handle;EDMA_Handle handle2;EDMA_Config myEdmaConfig; handle= EDMA_o..._display_mode_evt

Mini-project # 1 - Rock-paper-scissors-lizard-Spock_mini-project description - rock-paper-scissors-liz-程序员宅基地

文章浏览阅读977次。An Introduction to Interactive Programming in Python 这周的mini project作业,花了我很长时间,暂时在这里留个备份Mini-project description — Rock-paper-scissors-lizard-SpockRock-paper-scissors is a hand_mini-project description - rock-paper-scissors-lizard-spock

PANIC:could not open:home/.../.android/avd/x.ini_.android/avd/xx.ini-程序员宅基地

文章浏览阅读988次。。解决方法是,你在avd manage里面选中你创建的avd,右键查看其属性(主要就是查看它所在的位置)。然后你对照系统给你报的错误信息就应该知道了。我的错误信息是在 home/用户名/.android/avd/avd.ini找不到,而我查看后发现我创建的avd在root下面(因为我将workspace开始默认创建在root下所以这个也默认在root下)。所以,按你当前登陆用户的文件夹下面当然找不_.android/avd/xx.ini

实现一个简单的画矩形的工具_js svg 画矩形-程序员宅基地

文章浏览阅读120次。同时,贴上咱的个人博客,欢迎各位来访~_js svg 画矩形

1到100之间不能被3整除的数之和_1到100之间既不能被二整除又不能被三整除的所有数之和用程序打出来-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏9次。public class HelloWorld {public static void main(String[] args) {int sum = 0; // 保存不能被3整除的数之和 // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环 for (int i = 1; i&lt;=100 ; i++ ) ..._1到100之间既不能被二整除又不能被三整除的所有数之和用程序打出来

2024年最新作为字节跳动面试官,Python mplfinance库绘图③ 如何额外添加一条其他图线,2024年最新42岁程序员面试-程序员宅基地

文章浏览阅读878次,点赞23次,收藏26次。mpf.plot(df.loc[‘2020-6’:‘2020-12’], type=‘candle’, style=s, title=‘平安银行2020年K线图及唐奇安通道线’, addplot=add_plot, mav=(5,10,20),volume=True)s = mpf.make_mpf_style(base_mpf_style=‘nightclouds’, rc={‘font.family’: ‘SimHei’}) # 解决mplfinance绘制输出中文乱码。

推荐文章

热门文章

相关标签