方便的切换emacs主题


作为一个主题控,经常会切换主题,之前切换主题的方式是这样的,M-x,`load-theme`,选中,但是个人认为不够便捷,正好前几天发现了hydra这个插件,也想实践一下

获取主题列表

(setq maple-cycle-themes (mapcar 'symbol-name (custom-available-themes)))

获取当前主题索引

(cl-position (car (mapcar 'symbol-name custom-enabled-themes)) maple-cycle-themes :test 'equal)

获取下一个主题

(setq maple-current-theme-index
      (+ 1 maple-current-theme-index))
(setq maple-current-theme (nth maple-current-theme-index maple-cycle-themes))

加载主题

(load-theme (intern maple-current-theme) t)

最后得到这样的函数

(defun maple/cycle-theme (num)
  (interactive)
  (setq maple-current-theme-index
        (+ num
           (cl-position
            (car (mapcar 'symbol-name custom-enabled-themes)) maple-cycle-themes :test 'equal)))
  (when (>= maple-current-theme-index (length maple-cycle-themes))
    (setq maple-current-theme-index …

那些年我们一起写的诗


  • 其实世界上本没有试,考得人多了,也便成了试
  • 喝自己的水,让别人喝酒去吧!
  • 春游只是一场旅行,不在乎目的地(呈贡新校区)在乎的只是周末的作业和做作业的心情,让作业去旅行…
  • 忘记或是失忆…都是一场美丽
  • 黑夜如此短暂,仅在闭眼睁眼之间,却不知黑暗之中,已有人迷失方向,正在苦苦寻觅黎明前的光亮
  • 人生总有欢乐,亦有痛苦,我们本是为了活着而活着,活着,才有希望,死亡,或许能够躲避痛苦,但也将永远长眠于墓地,无法品味人生的酸甜苦辣
  • 问君能有几多愁,恰似一江春水向东流;问君能有几多愁,恰似一群太监上青楼;问君能有几多愁,恰似一代天骄热泪流 ;问君能有几多愁,恰似三中作业多如牛。作业多,愁啊!
  • 对内宣传实力如虎,对外抗议胆小如鼠
  • 天朗、气清、月明、人中:夜迹…血月
  • 众人皆白,唯我独黑
  • 众人皆醉,唯我独醒
  • 战争中出英雄,和平中出贪官,不在战争中爆发,就在和平中灭亡
  • 人生就像是在走一条很长很长的路,两只脚唯有不断超越对方,才能前进;两只脚不断躲避对方,只能后退
  • 生命如鸡肋,食之无味,弃之可惜
  • 拎起屠刀,让佛祖说去吧
  • 山脚有雨山无雨,眼中有泪眼无泪 …

vue笔记


Table of Contents

vue分页

需要参数:

  • page: 当前页码
  • total_page: 总页数

代码片段

<ul class="pagination" v-if="total_page > 1">
  <li  v-if="page > 1" class="previous">
    <a href="javascript:void(0);" v-on:click="paginate_to(1);">«</a>
  </li>
  <template v-for="p in total_page">
    <template v-if="p == page">
      <li class="active">
        <a href="javascript:void(0);">{{ p }}</a>
      </li>
    </template>
    <template v-else-if="(page - 2 < p && p < page + 2) || p …

emacs笔记


Linux

emacs gui进程放置到后台

EMACS=/usr/bin/emacs
GUI=0
ARGS="$@"
ARRAY=("-nw" "--no-window-system" "--batch" "--help")

for arg in $ARGS; do
    for keyword in "${ARRAY[@]}";do
        if [ $keyword = $arg ];then
            GUI=1
            break
        fi
    done
    if [ $GUI -eq 1 ]; then
        break …

emacs实现智能注释


之前使用emacs时遇到这么一个问题

当前行存在代码折叠时,如果想要注释,必须先选中当前行,否则只能注释代码折叠块的第一行

就像这样

基础注释函数来源于 stackoverflow

(defun comment-or-uncomment-region-or-line ()
  "Comments or uncomments the region or the current line if there's no active region."
  (interactive)
  (let (beg end)
    (if (region-active-p)
        (setq beg (region-beginning) end (region-end))
      (setq beg (line-beginning-position) end (line-end-position)))
    (comment-or-uncomment-region beg end)))

在此函数的位置上进行修改,刚开始使用

(when (hs-already-hidden-p)
    (evil-visual-line))

但是一直没得到想要的效果,后来修改了一下,使用

(when (hs-already-hidden-p)
  (progn
    (end-of-visual-line)
    (evil-visual-state)
    (beginning-of-visual-line)))

意思就是如果当前位置存在代码折叠,先选中当前行,然后注释整个选中区域

因为光标被移动到首位,我对这个不太在意,如果有在意的话,可以使用 …

基于whoosh实现的flask全文搜索插件


flask 貌似很少全文搜索的插件,有一个 https://github.com/gyllstromk/Flask-WhooshAlchemy , 但试了几次都用不了,所以参考 Flask-WhooshAlchemy 自己写了一个

Quickstart

插件基于 whoosh,纯 python 编写,使用上很简单

from flask_msearch import Search
[...]
search = Search()
search.init_app(app)

# models.py
class Post(db.Model):
    __tablename__ = 'post'
    __searchable__ = ['title', 'content']

# views.py
@app.route("/search")
def w_search():
    keyword = request.args.get('keyword')
    results = search.whoosh_search(Post,query …

心死


心死了,
没事,
只要人没事,

心死了,
人怎么可能没事。

人死了,
没事,
只要心没事,

人死了,
心怎么可能没事。

人不可无心,
心不可无人,
人心可有,
心人可有。

himawari8图片下载改进版


第一版下载图片后设为壁纸,四周都是黑黑的不好看, 所以结合本地壁纸将两张图片进行合成

只要计算一下要缩减的大小与要放置的位置

我的方法是:打开 gimp,合成两张图片,记下缩减的大小(214,214)与位置(160,160)

每次只要运行一下

python himawari8.py

源码

from PIL import Image, ImageOps, ImageDraw
from io import BytesIO
from urllib.request import Request, urlopen
from datetime import datetime, timedelta
import json

SCALE = 2
WIDTH = 1368
HEIGHT = 768


def get_info():
    url = "http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json"
    request = Request(url …