首先需要下载 shadowsocks-rust。可以使用 curl 直接下载:
curl -fLo shadowsocks.tar.xz https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.15.0-alpha.4/shadowsocks-v1.15.0-alpha.4.x86_64-unknown-linux-gnu.tar.xz
解压:
tar -xf shadowsocks.tar.xz
解压完,在当前目录可以看到一个 ssserver
文件,添加可执行权限:
sudo chmod +x ssserver
新建配置文件 config.json
{
"server": "my_server_ip",
"server_port": 8388,
"password": "mypassword",
"method": "aes-256-gcm",
"local_address": "127.0.0.1",
"local_port": 1080
}
执行如下命令:
nohup ./ssserver -c config.json &
使用 Vim 有很长一段时间了,我记得最早期的时候, 还是在网上看各种 Vim 配置的教程。 而这些教程里面,大部分都会提到一个叫做文件树(File Explorer)的功能。
文件树插件,也是我日常使用 Vim 必备的插件。 刚开始接触 Vim 的时候,那时候插件还很少, 只有内置的 netrw。 后来接触到了 nerdtree 以及 Shougo 的vimfiler, 包括 Shougo 使用 neovim remote 插件特性重写的 defx.nvim。
目前,SpaceVim 已经支持了以上这些文件树插件,可以通过 filemanager
选项进行设置:
[options]
filemanager = "nerdtree"
Neovim 这一项目目前默认支持 lua,很多插件被使用 lua 重写, 文件树也不例外。 最近就看到一个不错的文件树插件nvim-tree.lua, 计划给 SpaceVim 也增加这个插件支持。在次之前,先体验一下这个插件到底有哪些功能:
启用 nvim-tree
:
[options]
filemanager = "nvim-tree"
如果当前目录修改后,再使用 :NvimTreeFindFile
无法发现当前文件。
禁用默认的快捷键
尝试搜索文档和issues,最终只找到一个:Default keymaps cannot be unset。 里面有一段回复:
vim.g.nvim_tree_disable_default_keybindings = 1
但是,设置后,启动就警告:
[NvimTree] Following options were moved to setup, see bit.ly/3vIpEOJ: nvim_tree_disable_default_keybindings
因为 Vim8 和 Neovim 实现的 job 函数存在很大的区别,并且使用的方式也是不一样的。在制作插件时,如果需要同时兼容 Vim 和 Neovim 就会存在很大的麻烦。因此,在 SpaceVim 中,实现了一个 job API
,使用示例如下:
let s:JOB = SpaceVim#api#import('job')
let s:command = ['echo', 'hello world']
function! s:stdout(id, data, event)
" the data is a list of string
for line in a:data
echo line
endfor
endf
call s:JOB.start(s:command, {
\ 'on_stdout' : function('s:stdout'),
\ }
\ )
这个 API 的实现,参考了 neovim job 的模型。支持如下参数:
on_stdout
on_stderr
on_exit
目前,使用较多的聊天室是 SpaceVim 的 gitter 聊天室,但是这个平台网页访问比较慢。 因此做了vim-chat,可以在 Vim/Neovim 里面快速打开聊天室进行沟通。
如果有兴趣的,可以自行尝试。这个插件目前开发是在 spacevim 的主仓库,自动更新独立仓库,因此有两种使用方式。你可以在 spacevim 里启用 chat 模块,也可以单独安装vim-chat插件。
在 winrar官网(https://www.rarlab.com/download.htm)下载,并安装。
在winrar目录新建rarreg.key
文件,输入以下内容并保存:
RAR registration data
wncn
Unlimited Company License
UID=1b064ef8b57de3ae9b52
64122122509b52e35fd885373b214a4a64cc2fc1284b77ed14fa20
66ebfca6509f9813b32960fce6cb5ffde62890079861be57638717
7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565
b41bcf56929486b8bcdac33d50ecf7739960627351a9ef03353a0e
592b327cd80645472f0ee622d1915028a9e05298e593db36384f0f
f46afd5fed9b0bd095d1788266b81494b976f78fb1c551ca60a054
b17ad853ab902058b42c6887e1b3d40e0b45abf37de02106056887
下载 ResourceHacker.exe, 运行该工具打开winrar安装目录内的winrar.exe
文件:
定位到String Table(字符串)
使用 Vim 有一段时间了,SpaceVim 也陆续出了好几个版本。自动保存这个功能一直没有加上,其实并不是没有这个需求,而是没有找到合适的逻辑去实现。最新版SpaceVim新增了自动保存的功能,当然这一功能默认是关闭的。下面来简单介绍一下如何启用自动保存功能。
再使用Vim编辑代码时,经常会出现无意间关闭了Vim,或者各种插件问题导致Vim不能正常工作。忘记保存文件而导致文件编辑内容丢失。不知道大家有没有遇到过,我自己时遇到过好多次。最近,刚刚用上win11,发现office左上角自带了一个自动保存按钮。突然脑洞大开,是时候给SpaceVim也增加这一功能了。
再网上搜索了vim自动保存,发现有不少的插件提供这一功能,总的来说有如下两种逻辑:
1、将文件定期保存到指定的备份文件夹,比如~/.vim/backup
2、定期执行:w命令。
我更倾向于后者。
自动保存功能,包含在edit模块里面,可以通过如下配置进行设置:
[[layers]]
name = 'edit'
autosave_timeout = 300000
autosave_events = ['InsertLeave', 'TextChanged']
autosave_all_buffers = false
目前 edit
模块支持如下配置选项:
autosave_timeout
: 设置自动保存的时间间隔,默认是0,表示未开启定时自动保存。这个选项设定的值需要是毫秒数,并且需要小于100*60*1000 (100 分钟) 且 大于1000(1分钟)。比如设定成每隔5分钟自动保存一次:
[[layers]]
name = 'edit'
autosave_timeout = 300000
autosave_events
: 设定自动保存依赖的Vim事件,默认是空表。比如需要在离开插入模式时或者内容改变时自动保存:
[[layers]]
name = 'edit'
autosave_events = ['InsertLeave', 'TextChanged']
autosave_all_buffers
: 设定是否需要保存所有文件,默认是只保存当前编辑的文件,如果该选项设定成true
则保存所有文件。
[[layers]]
name = 'edit'
autosave_all_buffers = true
autosave_location
: 设定保存文件的位置,默认为空,表示保存为原始路径。也可以设定成一个备份文件夹,自动保存的文件保存到指定的备份文件夹里面,而不修改原始文件。
[[layers]]
name = 'edit'
autosave_location = '~/.cache/backup/'