CI_Knight

且行善举,莫问前程。

0%

在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。

0x07

字符串查找时,’\n’ 是换行,’\r’ 是回车,也就是经常会看到的 ^M(备注-1),字符串替换时,’\r’ 是换行,’\n’ 是空字符(0x00)。

0x08

一行内容太长被折断显示时,如果想在行内上下移动,使用 gj, gk 来操作。

我的一个朋友问我,哪里有下载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
2
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 可以研究下。

参考