使用 Pygments 对 Vimwiki 进行代码高亮

Fri 27 December 2013

Vimwiki 推荐的代码高亮机制是通过一个 JavaScript 插件来完成的, 那样需要加载很多 js, 所以不想使用, 比较倾向使用 Pygments 在 Vimwiki 生成 HTML 的时候对代码进行高亮.

尝试

使用 custom_wiki2html 选项

仔细的看了 Vimwiki 的帮助文档, 发现有一个 custom_wiki2html (:h vimwiki-option-custom_wiki2html) 的选项可以指定自己 的脚本来处理 wiki2html, 尝试了一下, 发现这个脚本是在生成 HTML 之前调用, 而且如果对 wiki 文件处理之后无法替换回原来的内容(后来发现这个仅仅是对使用 Markdown 语法作为 Wiki 语法设定的), 所以放弃了.

Fork 仓库, 更改代码

后来想想既然原生的没有解决办法, 所以就干脆在 github 上 fork 了仓库 …

Category: Vim Tagged: vim vimwiki pygments python highlight

comments

Read More

使用 Vimwiki + git 做知识管理

Thu 26 December 2013

一直在找一个合适的知识管理工具, 用过 Evernote, 但是不支持 Markdown, 用了一段时间也放弃了. 最近 python-cn 列表里也在讨论这个问题, 看到有人使用 Vimwiki, 所以就尝试了一下.

安装后,试着写了点东西, 发现很方便做知识管理和记录笔记, 可以生成HTML, 可以定制模板, 这里不讨论如何使用, Vimwiki 的文档介绍的很详细,

我使用bootstrap和 jquery 对模板进行了一些定制:

  • 添加导航
  • 将toc移动到左侧

下面将介绍我是如何做的, 并在最后附上如何部署的

指定模板

首先需要更改默认模板

    let g:vimwiki_list = [{'path': '~/vimwiki',
    \    'path_html': '~/vimwiki_html',
    \    'template_path': '~/vimwiki/template',
    \    'template_default': "default.tpl"}]

并将默认的模板作为模板进行修改

mkdir -p ~/vimwiki/template
cp …

Category: Vim Tagged: vim vimwiki wiki 知识 管理 git

comments

Read More

PyQt + QML 快速开发GUI总结

Wed 06 November 2013

最近结束一个使用PyQt+QML开发的项目, 在此对一些经验做出总结分享出来. 结合QML确实可以快速的构建出GUI程序, 但是相关资料太少, 特别是中文资料, 而且坑太多, 特别是和后端PyQt结合的时候有很多莫名奇妙的问题. 这篇文章会总结这些问题, 避免以后碰到无从下手.

PS:QML的一些基础问题不会在这里讨论, 本篇文章仅讨论一些经验性的问题, 本篇文章使用PyQt4

请留意文章中间的"注意"

如何和PyQt交互

QML和PyQt交互主要有三种方法: PyQt渲染数据, 信号传递, QML提供接口

使用PyQt显示QML

要想在Python里使用PyQt来调用QML显示, 需要用到 PyQt4.QtDeclarative.QDeclarativeView 实例的 setSource 将一个 PyQt4.QtCore.QUrl 对象传递进去, 然后调用 PyQt4.QtDeclarative.QDeclarativeView 对象的 show 方法, 下面是一个例子:

from PyQt4.QtDeclarative import QDeclarativeView
from PyQt4.QtGui …

Category: PyQt Tagged: QML PyQt Gui Python Qt

comments

Read More

推荐几款最近发现非常酷的Vim插件

Fri 18 October 2013

最近看一个github上的Vim配置, 发现了几款非常酷而且非常有用的Vim插件:

  • delimitMate 用于补全括号和引号
  • vim-surround 用于快速切换括号/引号或者标签
  • GitGutter 实时显示git更改
  • Gitv 查看Git详细提交日志(类似gitk)
  • vim-commentary Vim批量注释工具, 可以注释多行和去除多行注释
  • indentLine 更加美观的显示缩进对齐线

先放上录屏:

安装

上面插件可以通过 Vundle 来安装 (了解Vundle猛击 这里), 下面是 .vimrc 的配置

Bundle "Yggdroot/indentLine"
Bundle "airblade/vim-gitgutter"
Bundle "gregsexton/gitv"
Bundle "tpope/vim-commentary"
Bundle "tpope/vim-surround"
Bundle "Raimondi/delimitMate"

然后重新打开 Vim, 执行 :BundleIntall 等待安装完成 …

Category: Vim Tagged: Vim 插件 缩进对齐线 Git surround delimitMate

comments

Read More

Vim 相对行号

Wed 09 October 2013

大家在用Vim时是否会遇到想复制多行或者想快速向下/向上移动多行时而不知道行数的情况, 相对行号将帮助你轻易的完成类似的任务

Category: Vim Tagged: Vim 相对 行号

comments

Read More

Linux 下 Python 实现按任意键退出

Tue 20 August 2013

初学Python时在总想实现一个按任意键继续/退出的程序(受.bat毒害), 奈何一直写不出来, 最近学习Unix C时发现可以通过termios.h库来实现, 尝试一下发现Python也有这个库, 所以终于写出一个这样的程序. 下面是代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import sys
import termios


def press_any_key_exit(msg):
    # 获取标准输入的描述符
    fd = sys.stdin.fileno()

    # 获取标准输入(终端)的设置
    old_ttyinfo = termios.tcgetattr(fd)

    # 配置终端
    new_ttyinfo = old_ttyinfo[:]

    # 使用非规范模式(索引3是c_lflag 也就是本地模式)
    new_ttyinfo[3] &= ~termios.ICANON …

Category: Python Tagged: Python Linux 任意键 退出

comments

Read More

Vim 代码补全和检查: YouCompleteMe & syntastic

Wed 14 August 2013

Vim 7.4 发布, 最近升级了Vim, 并安装了YouCompleteMe和Syntastic插件, 这里记录下过程

升级Vim

YouCompleteMe 需要Vim 7.3.584+的支持, 并且开启 +python , 可以通过:version查看 升级Vim需要先卸载原有的Vim

sudo apt-get remove vim vim-tiny vim-common vim-runtime gvim vim-gui-common

并安装以下依赖

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev \
    python-dev ruby-dev mercurial checkinstall

下载最新的Vim源码 …

Category: Vim Tagged: Vim 补全 7.4 升级 检查 C语言 YouCompleteMe syntastic

comments

Read More

发布一个基于Tornado的高效异步的HTTP客户端库

Thu 01 August 2013

前面的博文提到过使用tornado进行网络异步编程, 也使用tornado实现了一个高效的WebQQ机器人, 由于tornado内置的AsyncHTTPClient功能过于单一, 所以自己写了一个基于Tornado的HTTP客户端库, 鉴于自己多处使用了这个库, 所以从项目中提取出来, 写成一个单独库 tornadohttpclient

TornadoHTTPClient 是一个基于Tornado的高效的异步HTTP客户端库, 支持Cookie和代理, 目前仅在Python2.7平台上测试过, 不支持Python3

听取了仙子君的意见, 直接对tornado.curl_httpclient.CurlAsyncHTTPClient进行封装

安装

首先从git clone 下代码

git clone https://github.com/coldnight/tornadohttpclient.git

然后安装它

cd tornadohttpclient
python setup.py install

教程

GET

TornadoHTTPClient的get方法可以发起一个get请求

from …

Category: Python Tagged: tornado http client module Python 高效

comments

Read More
Page 2 of 10

« Prev Next »