Sholck

不积跬步,无以至千里.不积小流,无以成江海

0%

生产力工具记录

生产力工具记录

下面是一些生产力工具


hexo


hexo官网链接:https://hexo.io/zh-cn/

本地主要维护两个仓库:

1.hexo-blog维护 博客hexo源代码 私有库
2.xiaer1921.github.io 维护博客hexo 生产代码

本地实践记录:

  1. 在执行hexo g之后,如果需要将代码部署到github,需要额外在public文件夹中新加文件CNAME,内容为你的域名,比如sholck.top.或者在source文件中增加CNAME文件,这样在hexo g时会自动复制到public文件下。
  2. 需要将配置的md文件配置为644权限
  3. 本地安装配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
npm config set registry https://registry.npm.taobao.org  //增加淘宝源
npm install -g hexo-cli

hexo -v
报错 /usr/bin/env: node: 没有那个文件或目录
解决:为node增加软链接 sudo ln -s /usr/bin/nodejs /usr/bin/node

报错 SyntaxError: Use of const in strict mode.
原因: node版本过低 node -v 查看版本
解决:升级nodejs
npm cache clean -f
sudo npm install -g n
sudo n stable

重新安装hexo-cli
#hexo -v 正确打印各插件版本信息

功能学习

  1. 当前文本无法高亮,使用==text==无效,使用以下第三种方法
1
2
3
4
5
6
7
8
9
1. hexo支持,但是有道云不支持
<label style="color:red">红色</label>
<label style="color:green">绿色</label>
<label style="color:yellow">黄色</label>
<label style="color:blue">蓝色</label>

2. ==text== 有道云支持,但是hexo不支持

3. <font color=#2196F3 >text</font> 兼容
  1. 代码高亮配置

    1
    2
    3
    4
    5
    在_config.yml中增加如下配置:
    highlight_theme: night eightie //主题
    auto_detect 设置为true
    themes/next/source/lib
    路径下下载主题git clone git@github.com:chriskempson/tomorrow-theme.git
  2. 常用命令

    1
    2
    3
    4
    hexo clean 清理生成文件
    hexo g 生成文件
    hexo s 启动hexo服务
    http://localhost:4000/ 可查看hexo启动运行的hexo服务界面
  3. 图片加载

1
2
3
4
5
先把图片放在source/images/
eg:source/images/CR-hal-chi-camx.png

在md中加入:
![alt](/images/PCR-hal-chi-camx.png)
  1. 置顶+标签

    1
    2
    3
    4
    5
    6
    7
    置顶+标签:
    tags: Camx
    top: true
    多tags配置:
    tags:
    - Camera-Camx
    - PCR
  2. 增加分类页

    1
    2
    3
    4
    hexo new page categories 创建分类页
    在文章增加如下部分:

    categories: Hexo
  3. 折叠

    1
    <!--more--> 
  4. 代码与文本对齐
    需要三个反单引号和前面的文本对齐

  5. 跳转

    1
    2
    3
    4
    5
    6
    7
    8
    9
    在需要跳转的前面增加
    <a id="0"></a>
    <a id="1"></a>


    调用跳转
    - [前言 基本概念的简介](#1)


  6. 折叠

    1
    2
    3
    4
    5
    6
    <details>
    <summary>标题</summary>

    文本和标题空一行,且文本前最好多一个table
    </details>

插件安装

flowchart&&mermaid

npm安装流程图插件

1
2
npm install --save hexo-filter-mermaid-diagrams
npm install --save hexo-filter-flowchart

关于mermaid的安装还需要额外几步:

  1. 下载mermaid js到themes/next/source/lib/mermaid下,没有mermaid先创建

    1
    wget https://cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js
  2. 增加js的调用,next需要增加如下部分到themes/next/layout/_partials/footer.swig

    1
    2
    3
    4
    5
    6
    <script src='/lib/mermaid/mermaid.min.js'></script>
    <script>
    if (window.mermaid) {
    mermaid.initialize({theme: 'forest'});
    }
    </script>
  3. 因为js的调用部分去掉了enable的判断,因此next下_config中的mermaid使能与否应该不影响


draw.io


返回主目录

制图神器,与github相关联,通过XML来描述图片元素之间关系,每次修改都会push到github,制图相关的还有XMind,StarUML,但是StarUML界面不太友好
目前使用到的是时序图,实现比较简单,但是发现想要在完成的时序图中间增加流程比较困难


vim/neovim/zsh/tmux/cscope/ctags/fzf/taglist


返回主目录
用了vim已经有5年了,一路上磕磕巴巴,插件也试了不少,tmux,fzf都是慢慢中间开始学过来的,终究没有从vim脱坑,配置文件改了又改,可惜一直没有记录,现在像一个大杂烩。故重新复习,总结,修炼。

neovim

因为vim上配置markdown-preview不生效,所以改为使用neovim
neovim-github
neovim-home

neovim安装配置

neovim-github-ubuntu安装

1
2
3
4
5
6
//pip install neovim 不推荐
//本地采用稳定源找不到neovim安装包,故采用unstable安装
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt-get update
sudo apt-get install neovim
在~/.zshrc中增加alias vim='nvim'

nvim复用vim的配置

zsh学习

zsh配置到一半发现ubuntu子系统运行命令卡顿,也没有专门去处理。

1
2
3
4
5
6
7
8
9
10
11
12
bash切到zsh,一般ubuntu会自带zsh.

https://ohmyz.sh/#install提示的命令无法下载,故选择github下载安装

执行sh install.sh会进行安装,配置完成会提示配置文件为~/.zshrc.
我们需要将一些~/.bashrc下的客制化移动到~/.zshrc.

安装完成界面命令提示符已经发生改变,不在是之前的一大长串的当前路径,仅仅提示当前所在的文件名。

发现两个问题:
1.bash和zsh 按键绑定不一样,fzf 配置文件运行报错。
2.zsh 运行卡顿,不知道是不是我window下ubuntu子系统的缘故。

更新:之前在WSL上简单配置zsh,因zsh运行卡顿且比较忙就停了,今重新修炼zsh.
目的是使用zsh插件来加快开发效率

安装

1
2
3
4
5
6
7
8
9
新建lynx用户
#useradd -m lynx
修改默认shell
#chsh -s /bin/zsh

[github-Zsh](https://github.com/ohmyzsh/ohmyzsh)
安装:
/github/ohmyzsh/tools#./install.sh
安装过程中会提示是否配置zsh为用户默认shell

插件管理vim-plug

vim-plug-github

插件安装使用

1
2
3
4
5
6
7
8
9
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

将库中的plug.vim copy到nvim安装路径
➜ tools git:(main) ✗ nvim --version
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/share/nvim" >>系统安装路径
#cp plug.vim /usr/share/nvim/runtime/autoload/.
//插件安装:PlugInstall

插件配置

插件配置:默认放置于$ZSH/plugins中,路径和source的位置相关联

fzf
1
2
3
4
5
6
7
作用: 文件跳转
[github-fzf](https://github.com/junegunn/fzf)
将fzf库copy到ohmyzsh/plugins/fzf并安装./install.sh
增加fzf到plugin list中
验证:ctrl+t

export FZF_BASE=$ZSH/plugins/fzf应该放置于source $ZSH/oh-my-zsh.sh前
Autosuggestion
1
2
3
4
作用: 根据历史命令进行提示
按照插件说明安装
#git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
增加zsh-autosuggestions到plugin list中
autojump
1
2
3
4
5
验证未生效
作用:文件跳转,类似fzf
#git clone git://github.com/joelthelion/autojump.git
将autojump库copy到ohmyzsh/plugins/autojump并安装./install.py
在.zshrc中增加[[ -s /root/.autojump/etc/profile.d/autojump.sh ]] && source /root/.autojump/etc/profile.d/autojump.sh
zsh-syntax-highlighting
1
2
3
4
5
6
按照INSTALL.md配置
#git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
将库下载到ohmyzsh/plugins/
#make install
#增加source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh到.zshrc
现象:会发现命令正确是绿色的,而不正确的是红色的

基本操作

  1. 目录浏览和跳转:d查看目录历史和通过序号跳转
  2. 直接使用..和…

vim-markdown配置

Tabular

基于正则的文本对齐-github

作用:文本对齐,对注释对齐非常有用
:help tabular

1
Vundle管理安装:Plugin 'godlygeek/tabular'

注释对齐eg:

1
2
3
4
5
6
//txt
text1 // comment1
text2 //comment2
执行:Tabularize /\/\/ 进行//对其
text1 // comment1
text2 // comment2

vim-markdown

vim-markdown插件-github
根据github描述,需要在vim-markdown插件前安装Tabular

1
Vundle管理安装 Plugin 'plasticboy/vim-markdown'

发现打开markdown文件有折叠,可以在.vimrc中增加如下来取消折叠

1
2
set foldlevel=9999
autocmd BufNewFile,BufRead *.md set nofoldenable

vim-markdown-toc

为markdown自动生成目录
vim-markdown-toc-github
中文说明

instant-markdown-d

instant-markdown-d github

安装以后打开md文件WSL可以自动打开页面实时预览,但是本地Ubuntu需要打开网页http://localhost:8090/预览

安装如下:

1
2
3
4
5
6
7
8
//安装依赖包
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
npm -g install instant-markdown-d

//配置init.vim,通过PlugInstall安装
Plug 'instant-markdown/vim-instant-markdown', {'for': 'markdown', 'do': 'yarn install'}

打开.md文件预览即可

markdown-preview

本地vim无法实时预览markdown文件,故迁移使用neovim, 暂时依旧无法预览

1
2
3
4
5
vim-markdown git:(master) vim --version | grep +python
+conceal +linebreak +python3 +visualextra

im-markdown git:(master) vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 22 2020 12:05:44)

插件安装

fzf记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo apt-get install highlight
#vim ~/.bashrc
# 搜索时高亮显示文件内容
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
# 指定索引目录
export FZF_DEFAULT_COMMAND='find code_pathXX'

#vim ~/.vimrc

Plugin 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plugin 'junegunn/fzf.vim'
set runtimepath^=~/.vim/bundle/fzf
set rtp+=/root/.vim/bundle/fzf/bin/fzf
nmap <C-p> :Files<CR>
nmap <C-e> :Buffers<CR>
nmap <C-h> :History<CR>
"let g:fzf_action = { 'ctrl-e': 'edit' }

tmux记录

1
2
3
4
5
6
当前绘画面板panel最大化 bind+z 在当前窗口有多panel时,如果需要当前panel最大化,这个方法是很方便的
新建session tmux new -s SESSION_NAME
删除指定的session tmux kill-session -t SESSION_NAME
连接上某个已存在的session tmux a -t SESSION_NAME;
session 重命名 bind,: 输入 rename-session new-name
当安装neovim后,发现tmux的窗口名在rename之后也会跟着当前路径改变,需要在配置中增加set-option -g allow-rename off,重载配置 tmux source ~/.tmux.conf

cscope

1
alias cdcope-note='cscope -Rbkq'  cscope更新索引

taglist

1
map <silent> <leader>w :WMToggle<CR>

winmanager

1
2
3
4
5
6
//vim的操作内部是用wincmd去控制的
map <silent> <leader>w :WMToggle<CR>
let WManager_Close_On_Select=1
let WManager_GainFocus_On_ToggleOpen = 1
WManager_Close_On_Select 客制化函数,用来选择文件以后退出
WManager_GainFocus_On_ToggleOpen 客制化函数,用来快捷键显示winmanager菜单

gnome终端配置

内置方案:深色
文件颜色:#839496
背景颜色:#002B36

HHKB


返回主目录
HHKB使用手册
alt

1
2
3
4
5
6
7
DIP开关说明:
开关下为off,上为on
12 设置为off, windows键盘设置模式
3 on为backspace, off为delete, 设置为on
45搭配使用, 5 on, 会互换 al和◇功能
4 on ,◇功能设置为Fn
6 on启用唤醒

上下左右跳转:

1
2
3
4
5
将功能4设置为on
Fn + [
Fn + ;
Fn + '
Fn + /

git


返回主目录

删除敏感信息提交

当提交敏感信息入库需要包括提交记录删除处理
目前git bebase中的drop实操未规,貌似git已经不再支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//切换到新的分支
git checkout --orphan latest_branch

//缓存所有文件(除了.gitignore中声名排除的)
git add -A

//提交跟踪过的文件(Commit the changes)
git commit -am "commit message"

//删除master分支(Delete the branch)
git branch -D main

//重命名当前分支为master
git branch -m main

//提交到远程master分支 (Finally, force update your repository)
git push -f origin main

git lfs

本地需要将vim设置提交到github,但是bundle下又有子git仓,提交失败,因为bundle下不修改,直接打包提交,但是文件太大,无法提交,采用git lfs管理。

1
2
3
4
5
6
7
8
9
10
1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
2. sudo apt-get install git-lfs
3. git lfs install
4. git lfs track vim/bundle.tar.gz 可以在当前目录下发现.gitattributes文件记录track配置, 该文件需要提交入库
5. # git lfs track >>查看当前配置
Listing tracked patterns
vim/bundle.tar.gz (.gitattributes)
Listing excluded patterns
6. # git lfs ls-files >>当前跟踪的文件
aa849f2b24 * vim/bundle.tar.gz

提交以后,github上有Stored with Git LFS 来标记此文件,见下图
alt

之后使用git lfs clone,因为git-lfs只提供1G的空间和每月1G的流量,查看path:setting>>Billing
alt

超过会报如下错:

1
batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access

如下方法在流量超过以后依旧无法拉取或者下载

1
2
3
1. fork这个库
2. 在仓库setting>>Archives 打开Include Git LFS objects in archives.
3. Danger Zone>>Archive this repository,之后在clone或者下载zip包依旧无法成功拉取lfs文件

meld&diffuse


返回主目录
linux环境代码比较集成工具

1
2
sudo apt-get install meld diffuse
由于meld需要使用python2环境,当提示import meld失败时,需要check /usr/bin/python的指向是不是python2,如果不是,修改meld,使用python2处理

参考

高效做笔记:vim + markdown
vim安装markdown插件