定制neovim的一键编译运行快捷键
写在前面
最近使用的编辑器开始向nvim转变, 下面配置一个编译运行C/C++/Python/Lua/sh/make/…程序的一键编译自动命令, 采用纯lua的API编写, 参考了stackoverflow的一个回答1.
命令框架
主要采用vim的autocmd, 搭配FileType事件, 使得vim能根据扩展名判断使用哪个函数调用.
然后就是用设置buffer内键映射的方法, 配置命令, 快捷键以及默认模式.
Python示例
下面以Python为例, 这里我用了我自己的虚拟环境中的Python解释器, 设置快捷键为<F7>, 在普通模式中运行代码.
开头的命令是保存然后划分窗口打开终端, %表示当前文件的文件名, 最后的i表示可以直接编辑输出的内容(方便...
Macos使用nvim+latex+skim配置高效的论文写作环境
写在前面
折腾一下在Mac上配置neovim写LaTeX的环境, 以及skim阅读器的配置. 这里参考了一位朋友的配置1, 我改成了在mac上使用的配置了.
vimtex配置
function config.vimtex()
vim.g.tex_flavor='latex' -- Default tex file format
vim.g.vimtex_view_method = 'skim'
-- allows forward search after every successful compilation
vim.g.vimtex_view_skim_sync = 1
-- allows change focus to skim af...
C语言网络接口函数inet_ntoa用法小坑与分析
问题
今天看了一下网络编程, 发现其中有一个接口函数很有意思, 就是从二进制转换到点分十进制表示的IP地址 的函数inet_ntoa(), 直接使用倒是没什么异样, 但是下面一个例子却出现了一个很有趣的现象:
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/_endian.h>
int main(int argc, char *argv[]) {
struct sockaddr_in addr1, addr2;
char *str_ptr;
cha...
Clang Format命令行调用时遇到的小坑(vim)
写在前面
最近开始用neovim作为IDE了, 虽然参考了大佬的配置, 自己也学会了一些Lua语言的配置方法, 但是还是难免遇到一些奇奇怪怪的玄学问题, 不过,最终还是解决了.
问题描述:
在vim调用``clang-format`时候, 总是不会正常的进行格式化, 也没有任何报错.格式化的代码如下(通过命令行进行调用)
clang-format -style='{BasedOnStyle: Google, IndentWidth: 4, SortIncludes: false, AccessModifierOffset: -4, ContinuationIndentWidth: 4, AlignAfterOpenBracket: true, AlignOpe...
Neovim中并行运行宏的快捷操作与lua脚本实现
写在前面
最近入坑vim了, 主要是想整一个纯键盘操作的编辑器, 用sublime当然方便, 但是还是需要鼠标点点点, 不知不觉中降低了效率. (但是过渡阶段还是得先用sublime的)
之前一个朋友就推荐过neovim, 并且帮我配置了在Mac的iTerm上的nvim环境, 当时没学过lua感觉配置起来bug很多, 为了稳定还是一直用的sublime, 直到后来我发现sublime的编译以及运行一些代码的时候需要很繁琐的配置, 格式化代码的插件也几乎都是8~9年前的了, 用起来很不方便, 于是还是想转入vim阵营((我是一直追求轻量级的)).
最近也一直在研究lua的一些基本语法, 不得不说lua脚本的语法真的是一股清流, 我以前就以为Python就是相当简洁明了的脚本了...
从系统调用角度看unix,linux文件权限
写在前面
最近开始看APUE, 其中文件访问权限部分一开始有点不懂, 后来发现就是简单的chmod命令的宏形式, 下面简单总结一下, 参考<sys/stat.h>.
文件权限
st_mode
含义
八进制值
英文注记
S_IRUSR
用户读
4
READ USER
S_IWUSR
用户写
2
WRITE USER
S_IXUSR
用户执行
1
EXEC USER
...
在m1mac上配置mit6.s081的riscv系统环境
写在前面
最近想学一下OS的一些内容, 斟酌良久, 选择MIT的6.SO81课程(2021), 链接:6.S081 / Fall 2021 (mit.edu).
第一步先从配置Lab环境开始, 由于我的mac是M1芯片, 安装RISCV花了不少时间, 不过还是在强大的开发者帮助下完成了, 下面记录一下. 参考了课程主页的工具链配置部分1.
安装基本工具
首先需要安装包管理工具brew, 这里可以看我之前的文章, 写的相当详细了. 这里直接从brew安装之后说.
brew tap riscv/riscv
brew install riscv-tools # 这步需要的时间很长
brew install qemu
上面的第二步我遇到了一个问题:
When I install...
力扣面试题寻找消失的两个数字多解法总结
题目
面试题 17.19. 消失的两个数字
难度困难
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?
以任意顺序返回这两个数字均可。
示例 1:
输入: [1]
输出: [2,3]
示例 2:
输入: [2,3]
输出: [1,4]
提示:
nums.length <= 30000
分析与代码
这里一开始我想的当然是用下面这种方法, 但是可惜, 时间复杂度飙升, 直接TLE:
class Solution:
def missingTwo(self, nums: List[int]) -> List[int]:
ans=[]
...
共计 492 篇文章,62 页。
您是Zorch的第 个小伙伴
Hits