且行善举,莫问前程。

0%

博客有一年没有更新了,并不是说有多忙,是自己有了一些想法,认为自己搞的东西在谷歌都能搜索到的,并没有很高大上的研究,所以就不想写一些科普文和简单的技术文章了,毕竟都是大家可以在网络上搜索到的内容。这种想法持续了很久,不知道是不是在为自己的懒惰开脱,经过一段时间的验证,还是想坚持写博客,不管是生活上还是杂谈或者是技术博客,都可以写下来。原因有三点。

第一,是可以帮助自己提高写作能力与总结能力。写下的文章自己也要通读几遍,对文章再做修剪和纠错,再次提高语言总结能力。

第二,坚持一个好习惯。我认为写博客是一个好习惯,可以记录生活,可以帮助一些人,也能提高自己的写作能力和总结能理力。或许还可以让自己变得更不浮躁更能独立思考。坚持也能让自己变得更有毅力(还有一个提高毅力和耐力的方式,那就是去运动)。

第三,可以加强记忆,习惯用印象笔记裁剪网页进行保存,虽然说可以进行搜索,但是长久以来,阅读能力下降,感觉保存起来就变成了自己的东西,而不能真正的消化掉,囫囵吞枣的看一遍,不能深入了解。俗话说,想记得牢而且真正的理解,那就是教别人一遍。

大学的时候,还会坚持写文章,博客从emlog到WordPress,又从之前Python写的一个模板渲染到现在hexo,之前的文章经过筛选留下了现在这些,也有很多文章已经被删掉了。

所以我决定继续坚持写博客,不过不会像以前那么简单,比如在xxx系统安装yyy类型的文章了,毕竟软件的readme都会告诉你的啊。

在macOS下,使用V-Block复制粘贴行内文字时,nvim总会自己在末尾加入一个\n字符,也不算是很严重的问题,但是和vim的表现是不一致的,或者也可以用v替换^v。

我使用vim一般都是用V-Block来复制粘贴,所以自从换了neovim就一直被这个问题困扰。最近有时间研究了下这个问题。

我通过nvim -u NORC启动nvim,使用v-block模式粘贴复制,发现问题不存在了。那肯定是配置的问题,配置有一千多行,只能用二分注释法去查找是哪个配置的问题了。

最后找到是clipboard=unnamed与系统剪切板共享出了问题。google无果,issue搜索clipboard相关问题,因为issue太多未找到。所以自己提了issue。

最后才知道,其实这个问题在2015年就有人提出了,在issue#1822可以找到,并且有很多人提了相同的issue。标为了bug,放到了todo的milestone,修复无望。

有大佬给出解决方案,只要在init.vim中添加下面的配置就可以了。

1
2
3
Plug 'bfredl/nvim-miniyank'
map p <Plug>(miniyank-autoput)
map P <Plug>(miniyank-autoPut)

0x00

使用 <C-d> 可以显示补全列表

0x01

使用补全时,可以使用<C-n><Right><Tab>键选择下一个补全,使用<S-Tab><C-p><Right>键择上一个补全。

0x02

当使用Ex命令时,如:bn,可以按 @: 来重复上一次命令,运行一次后就可以使用 @@ 来重复他,如果想回到上一个文件,可以使用使用 :bp 命令,但是更好的替代方案是,使用<C-o>来反向遍历缓冲区列表。

0x03

粘贴内容时,使用 :set nopaste,这样粘贴板的内容就不会自动缩进了,而是保持原格式。

0x04

vim中,% 代表当前文件,所以可以使用 :!python % 来执行当前文件。

0x05

使用 :args 列出vim缓冲区列表。输出中的[]字符表明哪个是活动文件。:ls 也是如此,但更加好看,其中%标识当前缓冲区打开文件,#则代表轮换文件。

0x06

使用 :edit . 或者 :Explore 打开vim内置文件管理器netrw。

我的一个朋友问我,哪里有下载python的镜像源,我一直都是在是pypi下载,而且路由都已经翻墙,平时很少会碰到下载python慢的问题。不过在我们伟大的墙下,访问pypi.python.org确实会慢很多。

Pyenv

一般管理下载python除了brew还会用pyenv,推荐直接用pyenv安装python,这样就可以很方便的管理python版本。pyenv是可以设置PYTHON_BUILD_MIRROR_URL环境变量来加速下载python。添加之后也下载python会快很多,当然也要看mirror的位置,如果在github上也不会快到哪里。我都是用这个源http://pyenv.qiniudn.com/pythons,但是目前已经没人维护了。

然后我找到了淘宝python源,然后设置pyenv的mirror url环境变量,发现并没有任何作用。经过一番查找,在 pyenv issue 18知道了pyenv使用了python build。

Python Build

python build,看实现是把python包和sha256写入到配置文件,下载的时候通过sha256的值来获取python包,我写了个web sever证实了这一点。

当你使用pyenv安装python时,找不到python版本号会提示你更新pyenv,也就是git pull,更新的就是python build的映射文件。

我通过重定向讲下载跳转到具体的淘宝源url,pyenv可以成功下载。当然pyenv最终会比较下载的包的sha256的值,校验不通过依然会去python.org下载。

那么我们只需要把python build配置中的包名和sha256的值取出来做一个映射,就完全可以全部转发到淘宝镜像源了。具体怎么取偷个懒,毕竟这样的需求还真不多。或者在淘宝直接下载包放到pyenv的cache中,就可以直接安装了。

上一周Neovim发布了0.3.0版本,这次版本更新修复了很多问题。也包括我之前遇到的按键无法使用问题,还有一个困扰我许久的bug,也就是在neovim中使用!command,无法打印unicode字符。

我尝试也打印终端的编码,也修改了vimrc种的编码配置都没有任何效果,这使得我需要频繁推出neovim,切换到终端来执行一些shell命令。所以这个bug一直放到了todo list中,在neovim github的issuse中也没有搜索到相关问题。在我还没提issue的情况下,这次0.3.0的版本就已经更新了。

MacOSX中更新neovim

肯定要第一时间更新neovim。使用brew upgrade neovim来更新,发现我碰到的问题都已经解决了。真心给neovim团队点赞,今后也会为neovim尽一份力。

今天在nvim在tmux中HOME和END两个键不能使用了,vim没有任何影响。而且我并没有修改过任何Nvim配置文件。再回忆,昨天我只用了NORC模式启动过nvim。

1
nvim -u NORC -N

是不是有什么关系,在google上搜索相关信息,在NeoVim的issue里找到了答案。

*https://github.com/neovim/neovim/issues/8032

是和环境变量TERM有关,将TERM设置成tmux或者screen可以解决这个问题。而且在0.2.3版本已经修复了这个问题。不过fedroa中最新版本是0.2.2,暂时通过修改环境变量解决问题了。

如果有树莓派闲置可以考虑装一个kodi来打造成家庭影院,kodi是可以运行在Linux系统上的,所以你也可以在系统上运行其他的服务(ss或者smbd等),首先你得有个显示器或者电视。

RASPBIAN系统的安装

系统推荐使用RASPBIAN STRETCH LITE,基于DebianStretch,这个系统更加轻量级,毕竟树莓派上没必要再跑桌面了。

系统安装

打开RASPBIAN下载界面,选择RASPBIAN STRETCH LITE下载,并解压出img文件。烧录镜像在Windows下可以下载Win32DiskImager,如果是Linux可以直接使用dd命令了。

准备一张大于或等于8GB的内存卡,并且格式化内存卡。打开Win32DiskImager选择镜像和内存卡进行写入。

安装 kodi

启动树莓派,你需要一个显示器,并且连接上键盘,登陆系统用户名pi,密码raspberry。安装openssh-server,并且使用service ssh start启动ssh-server服务。这可以确保你可以使用ssh远程连接到树莓派。

安装 kodi

1
2
$ apt update
$ apt install kodi

安装 pvr client

1
$ apt install kodi-peripheral-joystick kodi-pvr-iptvsimple kodi-inputstream-adaptive kodi-inputstream-rtmp

配置 kodi 自动启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ sudo tee -a /lib/systemd/system/kodi.service <<_EOF_
[Unit]
Description = Kodi Media Center
After = remote-fs.target network-online.target
Wants = network-online.target

[Service]
User = pi
Group = pi
Type = simple
ExecStart = /usr/bin/kodi
Restart = on-abort
RestartSec = 5

[Install]
WantedBy = multi-user.target
_EOF_

启动 kodi

1
$ service kodi start

配置 kodi

kodi如果要选择中文,需要先切换字体,默认字体中文会乱码。

配置 iptv m3u,iptv源需要自己多找找,可以在高清范找找,推荐一个http://www.hdpfans.com/thread-699265-1-1.html

还有一个 iptv pool 的插件,目前我还未去尝试。现在用kodi最多是投屏播放,并且支持airplay。

(iptv pool我已经尝试了,并没有什么用)补一个可以检查iptv源的工具iptv-checker,请自行下载。

kodi 插件源

下载插件zip包到树莓派,直接通过kodi安装插件包。

开发插件

kodi插件是可以使用python来开发的,虽然我还没研究过。这里有个 xbmc-remote 可以研究下。

参考

除了平时经常使用的vim操作外,vim是不是还有很多骚操作呢,网上搜索完整理一下。

0x00

首先vim其实可以加密文件的,打开一个文件,输入 :X(注意,大写的x),会提示你输入密码,确认密码后退出。再次打开后需要输入密码才可以查看文件内容,否则即是乱码。

0x01

vim是有排序功能的,可以进行行排序,输入 :sort 即可,也可以正则排序 :sort r /regex/。

0x02

vim可以直接打开二进制文件,使用 vim -b file 打开文件,输入:%!xxd dump 成二进制的文本形式,输入:%!xxd -r再转换成原来的样子。

0x03

gg=G,这个是vim的自动格式化命令,还有ggvG=。

0x04

~ S+`,这个键位可以直接转换英文的大小写。

0x05

快速按两次CTRL-O便可打开上次编辑的文件。

0x06

命令行输入vimtutor,会直接进入Vim自带的教程。

0x07

C-a,C-x 前者能对一个数字+1,后者则是-1。

0x08

vim -d file1 file2 即可高亮对比两个文件。

0x09

在vim插入模式下,按C-v再按任意建,都会打印出该键位名称。

0xa

早日换neovim

windows的快捷键

今天突然系统桌面变成黑白了,原以为激活又失效了,其实是按错了快捷键,window+ctrl+c(颜色高对比度)设置。

参考

这个周末晚上和女朋友一起看了场脱口秀,很小的剧场,总共大概有100多个观众。我曾经也抢到过今晚80后的现场票,但是因为加班结果没有去成,想想非常可惜,现在今晚80后脱口秀也停播了。其实这样的小剧场现在运营也相当困难了。

今晚80后是要在电视上播出的,而这样的小剧场是禁止录像录音的,尺度也就大了很多,不需要用“咦”的呼喊声来代替了。所以也更加有趣,也就有了更多的关于性,辱骂,暴力,政治等话题。那场也正好有名台湾的观众,所以就有了各种调侃党的话题。

对于电视上的脱口秀,我更喜欢这种线下,因为线下约束更小,也更加刺激。所以我就很喜欢池子,敢说。

后来我想,脱口秀中大多是黑自己,黑他人,黑政府,黑各种不满意的事物。而听脱口秀是一种内心压力的宣泄的方式吧。

起因

vim8已经支持了异步,并且有很多优秀的插件,比如YCM,ale等。想要使用nvim的起因是我们公司配的2012款的mac电脑已经跑不动YCM和vim8了。

Neovim

Neovim (literally the future of vim),nvim是后起之秀,现在已经要到0.3的版本了,目前bug还是很多,github上的issue已经有600+了。最近也碰到了无法解决的问题,就是在nvim中运行!command或者system(),不能输出unicode字符。也没有查出问题。已经打算提issue了。

neovim性能要比vim8优秀,性能好。而且解决了在插入模式下光标问题(插入模式下光标已经是一个竖线),异步插件也很优秀。

因为只是迁移,并没有太过深入研究,所以就不多讲些什么,不过还是推荐早些使用neovim。