vim按f5运行代码配置

news/2025/3/9 18:27:40/文章来源:https://www.cnblogs.com/ddobb/p/18761142

使vim能够像vscode一样按f5运行代码
效果图

let g:last_terminal_buf = -1 " 用于存储上一个终端缓冲区编号

function! RunCurrentFile()
" 如果存在上次的终端缓冲区,则删除它
if g:last_terminal_buf != -1 && bufexists(g:last_terminal_buf)
silent execute 'bd! '.g:last_terminal_buf
endif

" 确保文件被保存
write

let l:filetype = &filetype
let l:cmd = ""

if l:filetype == 'python'
let l:cmd = "python ".expand("%:p")
elseif l:filetype == 'javascript'
let l:cmd = "node ".expand("%:p")
elseif l:filetype == 'cpp'
" 对于C++,你可能需要先编译再运行
let l:cmd = "g++ -o %< ".expand("%:p")." && ./%<"
else
echo "Unsupported file type!"
return
endif

" 计算新窗口的高度为当前编辑器高度的三分之一
let l:winheight = winheight(0) / 3

" 使用 botright terminal 直接打开终端并执行命令,同时指定窗口大小
execute "belowright terminal ".l:cmd
execute "resize ".l:winheight

" 更新全局变量以指向新的终端缓冲区
let g:last_terminal_buf = bufnr("$")
endfunction

" 将F5键映射到RunCurrentFile函数
nnoremap :call RunCurrentFile()
inoremap :call RunCurrentFile()
将以上配置添加到vimrc里就行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/896031.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek + Xmind,1分钟自动把pdf/word文档转成思维导图

DeepSeek加Xmind,1分钟把PDF、Word文档转成思维导图!步骤超简单:第一步:打开DeepSeek,点击“深度思考”,上传你的文档。第二步:告诉DeepSeek“帮我转成思维导图,输出Markdown格式”。第三步:复制代码, 保存文件到桌面文本文件中,修改文件后缀为“.md”。第四步:打开…

Windows平台调试器原理与编写05.内存断点

https://www.bpsend.net/thread-274-1-3.html 内存断点访问断点 写入断点内存写入断点简介:当被调试进程访问,读或写指定内存的时候,程序能够断下来。 思考1:要想将一段内存设为内存断点,最终的目的是让其能够抛异常。调试器是基于异常的一个程序。应该如何实现呢?可以通…

Redis--Lesson01--NoSQL简史

单击MySQL的演进 单机MySQL 在早期互联网时代,也就是90年代以前,一个基本的互联网的访问量不会太大,可以说很多国家和地区都还没有配备互联网,所以在这种情况下的互联网格局使用的数据存储格式就是简单的单机模式,即使用一个数据库的如MySQL库就可以满足日常的数据读写 如…

Excel的快捷键

1、填充序号1~1000(删除后,序号会自动更新) (1)首先在左上角的位置框中输入A1:A1000,然后按Enter回车健,即可选中A1到A1000的单元格。(2)然后在函数框中输入=ROW(),按Ctrl + Enter即可,即可填充1-1000。 本文来自博客园,作者:业余砖家,转载请注明原文链接:http…

AutoGLM: Autonomous Foundation Agents for GUIs

AutoGLM: 针对Web和手机,基于ChatGLM,具体细节并不清楚。主要内容 提出AUTOGLM,集成了一套全面的技术和基础设施,以创建适合用户交付的可部署代理系统。首先,为GUI控制设计合适的"intermediate interface"是至关重要的,可以实现规划和定位的分离。其次,开发了…

Vulnhub-election靶机

总结:本靶机给了很多目录,对于信息收集考察的比较严格,给了一个数据库,很多时候容易陷进去,拿到用户权限登录后,也需要大量的信息收集,虽然可以在数据库里找到root和密码,但是不是靶机本身的,最终利用suid发现可疑目录,查找日志后利用脚本提权一、靶机搭建 选择扫描虚…

[HDCTF 2023]double_code _wp

其实这道题的加密函数我是手翻出来的,但是做完之后了解到这是一个sheelcode 实际上就是跑病毒的代码 WriteProcessMemory 用于向指定进程中写入数据,写入一个缓冲区中的数据到另一个进程指定的内存地址中。 函数接受的参数包括要写入的进程句柄,要写入的内存地址,要写入的…

VisionPro添加显示标签(二维码)简单版

!!!——!!! 咱们先展示效果,这个显示的是二维码的信息1.首先呢,你先添加工具 CogIDTool ,工具里我是这么设置的,如果你自己添加的码跟我的不一样,左边几个都运行看看2.现在可以添加脚本了,我接触的都是第二个C#高级脚本,下边是C#高级脚本演示 1)先创建 1个标签2)…

初步学习Android studio

下载安装了Android studio,并在其中下载好了gradle,在模拟手机中实现helloworld

2025低空经济eVTOL行业研究报告42份汇总解读|附PDF下载

原文链接:https://tecdat.cn/?p=40459在科技与交通领域加速融合的当下,低空经济正凭借其独特优势,逐步成为全球经济发展的新焦点。电动垂直起降飞行器(eVTOL)作为低空经济的核心要素,其发展态势备受瞩目。本报告汇总洞察基于文末42份低空经济行业研究报告的数据,报告合…

Prometheus服务的动态发现

prometheus服务的动态发现原文链接:https://blog.csdn.net/2302_79199605/article/details/136441386一、概述 ​ 目前,我们每增加一个被监控的节点,就需要修改prometheus的配置文件,然后重新加载prometheus服务,这种方式比较繁琐,每次新增、删除被监控节点都需要重新操…

AtCoder Beginner Contest 396(d和e)

题目链接d 题目分析 本题要求在一个简单连通无向图中,找出从顶点 1 到顶点 N 的所有简单路径(即不重复经过同一顶点的路径)中,路径上所有边的标签的异或值的最小值。 输入信息第一行包含两个整数 N 和 M,分别表示图的顶点数和边数,其中 2 ≤ N ≤ 10,N - 1 ≤ M ≤ N * …