且行善举,莫问前程。

0%

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。

学习是个由浅到深的过程,这个过程是比较困难的。有很多人在到深的过程中就放弃了。人都是有惰性的,会知难而退。能不能深入要看这个人的毅力如何,是否可以抵制诱惑。如何确定要学习的内容,这是很大的话题,暂且不谈。聊一聊该怎么学习,怎么由浅到深。

看了编成随想的文章,大致是分为三个过程,也就是What、How、Why学习法,比如我要学习Python编成语言该怎么学习。

What

首先,什么是Python,Python是一门脚本语言,应用在众多方面,比如运维,后端开发,爬虫,数据分析,机器学习等。学习Python的基础语法,然后可以用它写一些小的程序。能够熟练使用Python中的内置方法和第三方包等等。

这些都是初级的,不管使用Python还是其他语言,这些只能是浅层的学习。

How

其次,再来深入,比如再去了解Python的底层实现,built-in内置函数的实现,了解其中的算法实现,一步步深入。

在这个层次,你是要搞懂怎么做,怎么实现。也是下一步的关键。

Why

最后,当了解了内部实现后,你就会有疑问,为什么是这么做,你会有所思考。当你知识量足够大时,你就会有所比较,比如,Python的gc为什么要使用引用计数器,而不像ruby使用预先创建的链表方法。

在这一步,才会有质的提升。也会激发自己的创造能力,也就是说读书破万卷,下笔如有神。

虽然说只有简单的三步,但是在其中要付出很多,坚持毅力,还要有一定的自学能力,自主思考的能力,才能将其研究透彻。当然,多加练习,你也会拥有这些能力。

与君共勉。

我们抛开数字货币来谈区块链,区块链技术是非常好的,区块链上的数据有着完整、一致、及时、准确,不可篡改等优点。

如今一项技术火了就会有很多教育机构争相开始培训课程。其实很多技术没有必要花钱去学,只要有心,网络上就可以搞到。一些专有课程除外。

我是比较不喜欢写网络上都有的东西的。google搜一下全都是的我就没必要再去多写一份了。所以我来列一些不错的区块链学习网站。

资料分享

Awesome Blockchain

最快的当属 Awesome 系列

比特币

《精通比特币》,这本书讲解了比特币的相关知识,有能力的同学最好读英文原版,这本书的第二版已经出来了。

精通比特币

以太坊

《精通以太坊》,该书还未写完,不过现在已经可以在github上看了。

ethereumbook

《以太坊白皮书》,官方文档。

以太坊白皮书-中文

智能合约(Dapp)

如果学习智能合约只推荐“CryptoZombies”,这个网站会带你学习solidty,并带你使用siolidty来写一个区块链小游戏。目前出到了第五章,第六章会讲解如果将智能和约部署到以太坊。学完你就可以做一个区块链养猫了。

还有一个学习的网站,朋友推荐给我的,纯英文而且后期需要付费。

newline

社区

EthFans

结语

先分享这些,后续再补充。