在类unix系统上学习os必须掌握的shell命令
写在前面
记录一些常用的shell命令(主要是系统层面), 我分别在两个平台下进行测试:
MacOS 12.6(arm)
Ubuntu(arm, multipass)
由于业界的标准还是Linux, 这里以Linux为主, 对于MacOS的话其实可以直接从GUI界面得到, 除非对于一些开发层面的内容需要命令行.
Ubuntu版
系统基本信息
这部分参考了一篇博客1, 写的相当详细, 也是基于Ubuntu的. 给出了很多基本的系统信息, 主要是软件层面.
# 查看系统内核版本, 系统名称
ubuntu@vm1:~$ cat /proc/version
Linux version 5.4.0-126-generic (buildd@bos02-arm64-060)...
在neovim中配置基于事件触发的自动保存
配置
采用纯lua脚本的方式进行vim中自动保存的配置, 参考了 Stack Overflow 的一个回答1, 如下:
vim.api.nvim_create_autocmd({ "InsertLeave" }, {
callback = function()
vim.fn.execute("silent! write")
vim.notify("Autosaved!", vim.log.levels.INFO, {})
end,
})
事件采用了InsertLeave, 即当编辑器离开插入模式, 便触发保存, 通过Neovim的内置函数vim.fn.execute完成调用.
并且...
Python判断中使用多个and和or的优先级与踩坑
一个问题
最近刷力扣,想试试 Python 新支持的海象操作符, 其实就是能在语句中赋值, 类似下面这样:
if (n:=len(nums)):
return False
但是当出现下面这种情况的时候, 赋值就会失败:
if True or (a:=1):
print(a)
'''
NameError: name 'a' is not defined
'''
出现这个错误的原因就是 Python 中and和or的优先级问题, 当语句中先出现or的时候, 如果or前面的值为True, 那这个语句就判断为真,而不会进行之后的判断了, 所以后面的赋值就不会执行.
那么问题来了, 当一条判断语句中同时出现and 和or, 这时候其优先级是如何呢?
根据以往的经验,...
C++递归lambda出现的循环初始值捕获问题分析与解决
问题
昨天开始刷回溯系列, 在用Python的时候一切良好, 但是到了C++这里, 我突然发现一模一样的代码竟然不出值了, 具体情况如下, 题目是全排列46. 全排列 - 力扣(LeetCode),我的代码如下:
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
int ns = nums.size(), i = 0;
vector<int> path{};
vector<bool> used(ns, false);
vector<vecto...
使用pandas批量重命名(指定excel中的对应列)
写在前面
今天有个朋友问我有没有一种简单的方法将Excel中的学号和姓名列作为文件名, 批量重命名100个Word文档, 下面是具体的文件, 文件夹中是待修改的Word文档(存在一些比较冗杂的xlsx文件), Excel前两列是学号和姓名信息.
文件夹内容
可以看到里面的文件名主要的格式为:<姓名><等级或成绩><成绩><其他信息>.docx, (忽略其他冗余文件).
Excel内容
这里不方便给出截图, 以表格形式简单描述:
序号
学号
姓名
其他信息
1
20XXXXXXXX
张三
...
定制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...
共计 465 篇文章,59 页。
您是Zorch的第 个小伙伴
Hits