分类 未分类 下的文章

[笔记]从自然码到微软五笔

个人笔记,如有转载,请注明出处。
——by realasking

自然码官方的开发已经停止多年,但一直有第三方的实现可以使用,基于RIME的方案就不错。然而,RIME输入法和Win10似乎兼容性一直不好,最近一年多来经常发生office2016/2019下候选框闪烁、无法输入的问题,还遇到过——开机就无法输入中文的事,最后决定暂且将其放弃。

不再使用RIME后,就很难找到Win10下好用的自然码方案了,于是就打算转向五笔。尝试过多种五笔输入法之后,觉得不错的剩下花儿五笔、王码五笔大一统和微软五笔。

先购买了一套王码五笔大一统,使用中觉得它和Win10兼容非常好,支持自造词,但是其输入框背景不能更换、哪怕设置过全角标点和符号也无法打出破折号等、以及官网手册与软件对不上,最后将它作为备选而搁置了。

然后尝试了花儿五笔。除了无法更改Ctrl+Space之外,这一输入法非常好用,而且用户造词和导入词库都很方便。然而,使用一段时间后,突然某天,就常常遇到它无法在office365中激活的问题,只好暂时放弃。

最后找到了wubilex,在它的辅助下,暂时使用着微软五笔。wubilex可以更换微软五笔的词库和导入自定义短语,虽然用起来不如花儿五笔,但大体上还能接受,只是不能竖排和导入短语后破坏了词组的排列顺序比较难受。不过,如果不以wubilex辅助的话,微软五笔就很不好用,比如导入词组有时会导致一些原有词汇无法打出来。

暂时用着微软五笔,希望未来还能有更好用的出来吧。

------2021年02月10日------

今天偶然看到了一个叫黄狗五笔的输入法,和花儿五笔很像,但是去年11月编译的,比花儿新。装上试了试,感觉还可以,office中也暂未遇到问题,先用一段时间看看。
*****初步使用感受:引号、括号都被自动配对,对于五笔软件练习来说几乎无法进行文章练习,这应该是文本处理软件的功能,而不应该是输入法的功能,这种设计不是太喜欢。

------2021年02月12日------

今天找到一个叫启程输入法的软件,这个软件功能不错,有五笔、拼音、英文输入法,而且还有多年前用过的表形码,符号自动配对也可以自行设置,皮肤也可以自己做。
然而,尝试打二级简码的时候发现,很多编码打出来的都不对,感觉作者可能受了词频的影响、软件将二级简码当作词汇在对待,只能弃用了,很可惜。

------2021年02月18日------

在百度贴吧看到,王码五笔大一统不开状态栏时能关闭Ctrl+SPACE,而开状态栏时能输入——,就研究了下,发现C:\Program Files (x86)\wangma\wmwb18下有个fuhao.exe,把它固定在任务栏,暂时可以解决特殊符号输入问题、也不会影响各种编程软件的正常使用。

【原创】WP Editor.md 扩展导致emacs无法访问博客

个人笔记,如有转载,请注明出处。
——by realasking

前段时间想过尝试用Emacs写博客,但是试了几个插件都失败了,有认证出问题的,有登录不上的,直到今天重新尝试ewp,明确给出了500错误,才发觉问题可能出在服务器端。
检查/var/log/nginx/wp_client_access.log,发现如下问题:

2019/06/14 05:53:18 [error] 3492#0: *61675 FastCGI sent in stderr: PHP message: PHP Fatal error: Uncaught Error: Class \'EditormdApp\\IXR_Message\' not found in 安装地址/wordpress/wp-content/plugins/wp-editormd/src/App/WPComMarkdown.php:720
Stack trace:
#0 安装地址/wordpress/wp-content/plugins/wp-editormd/src/App/WPComMarkdown.php(100): EditormdApp\\WPComMarkdown->check_for_early_methods()
#1 安装地址/wordpress/wp-content/plugins/wp-editormd/src/App/WPComMarkdown.php(72): EditormdApp\\WPComMarkdown->load_markdown_for_posts()
#2 安装地址/wordpress/wp-content/plugins/wp-editormd/src/App/WPComMarkdown.php(34): EditormdApp\\WPComMarkdown->maybe_load_actions_and_filters()
#3 安装地址/wordpress/wp-includes/class-wp-hook.php(286): EditormdApp\\WPComMarkdown->load(\'\')
#4 安装地址/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array)
#5 安装地址/wordpress/wp-includes/plugin.php(465): WP_Hook->do_action(Array)
#6 安装地址/wordpress/wp-settings.php(525): do_ while reading response header from upstream, client: 地址1, server: realasking.tk, request: POST /xmlrpc.php HTTP/1.1, upstream: fastcgi://地址和端口, host: www.realasking.tk

将该插件停用就好了 。
停用该插件后,我换用了WP Githuber MD,正好,可以用来转换Emacs发出来的博客。

Cygwin安装后的若干问题解决办法

Tag:以前安装cygwin后遇到的一些问题的解决办法,原始发布地址是:Cygwin安装后的若干问题解决办法

以前的个人笔记,仅作备忘之用,如有转载,请注明出处

──by realasking

窗口太小,无法全屏

解决:启动cygwin后,在标题栏单击右键,选属性,布局,调整窗口大小

修改bash默认颜色方案时提示:dircolors: no SHELL environment variable, and no shell type option given

解决:在.bashrc中设置:export SHELL="bash"

vim颜色方案不对,背景全灰

解决:修改.vimrc,用"注释掉set t_Co=256,因为cygwin默认不支持256色

vim输入中文串行

解决:修改.vimrc,加入以下内容:

   if &term != "cygwin"
   set ruler
   else
   set noruler
   endif

嗯,这条好像是来自紫霞论坛

Cywin输入、显示中文不正常

解决:修改.inputrc,解除以下几行注释:

    #set meta-flag on
    #set convert-meta off
    #set input-meta on
    #set output-meta on

vim退格键未定义

解决:修改.vimrc,加入:

    set nocp
    set backspace=start,indent,eol

在Cygwin中不能复制和粘贴

解决:一个好的解决方案是使用puttycyg

Python学习笔记

以前所写python学习笔记,python初学时期的,两篇合而为一,原始出处:python学习笔记1python学习笔记2

备忘,如有转载,请注明出处。

——by realasking

Linux下Python程序名应取作:xxx.py,然后程序第一行写成:

#!/usr/bin/env python

未加语言相关的环境变量设置时,不应在python程序中加入非ASCII的字符,程序文件中以#引起的行为注释行。

Python程序写好后可按如下方法运行:

$python ./xxx.py 参数1 参数2 ...

其中python这一命令由系统环境变量$PYTHON的值或alias指定的python来决定,而参数的引入,是通过sys.argv来实现的,
应这样来使用参数:

import os
import sys
input_Args=sys.argv
Arg1=input_Args[1]
Arg2=input_Args[2]

由于参数是字符串,所以如果要传递数值型参数,需要用相应的函数转换,比如:

Arg1=float(Arg1)

python最方便的一点是它是胶水语言,较头痛的则是它的数据类型、文件读写等和其它语言有较大差别,第一个容易忘记的
地方是,它没有double型,它的float型即double精度,类型转换也应用float(A)这样的形式。另外,python的数据类型一般
不需要专门声明,不过可以定义空数组,在数值计算中,这个做法还是有些用的:

tmp=[]

python的循环和条件判断,采用缩进来区分,没有其它定界符,相同缩进表示相同层级的语句,至于循环和条件语句的开
始行的行末,则需要添加:作为标志,比如条件判断:

a=11
b=10
if b > a :
   print "b>a"
   elif b < a :
      print "b

在python中,感觉使用while循环比for循环更方便些,比如:

AA=11
a=0
while a < AA :
      执行语句
      a=a+1

用python读取格式化文本不是太方便,不过还是有办法的,比如读取一个数据矩阵中的一行数据:

f=open(input_file_name,"r")
......
data=[]
line=f.readline()
line=line.strip()
data.append(map(float, line.split(' ')))
.....
f.close()

如果是要读取整个矩阵,在data=[]和最后的append之间加上循环就是了。

矩阵或向量运算,应该采用numpyscipy,做法是:

import math
import numpy as np
import scipy as sp

然后就可以进行运算了,比如加法、除以一个数:

npdata=np.array(data)
data_sum=np.add(npdata,npdata)
data_frac=np.true_divide(npdata,2)

也可以按列合并矩阵(要求两矩阵行数一样):

new_matrix=np.hstack([mat1,mat2])

或按行合并矩阵(要求两矩阵列数一样):

new_matrix=np.vstack([mat1,mat2])

合并矩阵的命令同样可以用于合并向量,但是合并向量的时候有时会提示行列数不对,那可能是因为一个的维度是
(n个),而另一个的维度是(n列,1行),这种情况下,可用reshape来进行转换:

array2=array2.reshape(n)
new_array=np.hstack([array1,array2])

查看矩阵或向量维度的办法是:

xxx.shape

对于一个矩阵,若按其第一列元素大小顺序来对整个矩阵进行行排序,则执行:

mat1=mat1[mat1[:,0].argsort()]

在屏幕上输出数组:

print mat1

保存一个矩阵到文件:

np.savetxt(输出文件名,矩阵名)

Linux下python使用和学习笔记,面向对象部分,包括函数、多个返回值、传递对象、模块、面向对象等内容,

共分7个文件,其中test.py是主文件,mod.py是一个简单的函数文件,modclass.py是一个类,也是modinheritance.py的基类,

而以xxinheritancexx为名的都是派生和继承的练习。

test.py的内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#python函数、类、模块学习脚本
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import mod as md
import numpy as np
import modclass as mc
import modinheritance as mi
import modinheritance2 as mi2
import modmultiinheritance as mmi

def firstfunc() :
    print '第一个函数'

firstfunc()

a=0.0
b=''
c=''

def testnumber(a,c) :
    global b
    a=a+1.0
    b='你好'
    c=b
    return [a,b,c]

#python可用列表或元组返回多个参数,放到不同变量中
[a,b,c]=testnumber(a,b)

print a,b
c=''
[a,b,c]=testnumber(a,c)
print a,b,c


#测试不同数据类型的传递
d=np.array([[1,2,3],[4,5,6],[7,8,9]])

def nptest(x) :
    y=np.sin(x)
    return [x,y]

[xx,y]=nptest(d)
print d
print xx
print y

cc=xx*y
print cc

#测试module文件中的函数
[xxx,yy]=md.nptest(d)
print xxx 
print yy

#类的测试
zs=mc.modclass()
zs.nptest(d)
[xxxx,yyy]=zs.getxy()
print xxxx
print yyy 

#测试列表 
xxtmp=[]
i=0
while i < 10:
   zss=mc.modclass()
   zss.nptest(xxxx)
   [xxxx,yyy]=zss.getxy()
   xxtmp.append(zss)
   print xxtmp[i].x
   i+=1

#派生类测试
mis=mi.modinheritance()
mis.nptest(xxxx)
[xxxxx,yyyy,cc]=mis.getxy()

#派生类测试2
mis2=mi2.modinheritance2()
mis2.nptest(xxxx)
[xxxxx,yyyy,cc,dd]=mis2.getxy()
print xxxxx,yyyy,cc,dd

#多重继承测试
mis3=mmi.modmultiinheritance()
mis3.nptest(xxxx)
cccccc=mis3.getxy()
print cccccc

mod.py文件内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#函数的使用
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np

def nptest(x) :
       y=np.sin(x)
       return [x,y]

modclass.py文件内容,也是类的构建:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#类的使用
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np

class modclass:
    #初始化,定义内部变量
    def __init__(self):
        self.a=0
        self.x=np.array([])
        self.y=np.array([])
    #从外部传值进来进行计算
    def nptest(self,x):
       self.x=x
       self.y=np.sin(self.x)
    #返回值
    def getxy(self):
       return [self.x*self.y,self.y]

modinheritance.py文件内容,也是类的继承:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#类的继承和派生
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np
import modclass as mc

class modinheritance(mc.modclass):
    #初始化,定义内部变量
    def __init__(self):
        mc.modclass.__init__(self)
        self.b=0
        self.aa=np.array([])
        self.bb=np.array([])
    #从外部传值进来进行计算
    def nptest(self,x):
       #调用父类同名函数,内部变量仍然共享
       mc.modclass.nptest(self,x)
       #self.a是父类中提供的内部变量,继承而来
       self.b=self.a+2
       #调用getxy也是父类中的
       [self.aa,self.bb]=mc.modclass.getxy(self)
    #返回值
    def getxy(self):
       return [self.aa,self.bb,self.b]

modinheritance2.py文件的内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#类的继承和派生2
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np
import modclass as mc
import modinheritance as mi

class modinheritance2(mi.modinheritance):
    #初始化,定义内部变量
    def __init__(self):
        mi.modinheritance.__init__(self)
        self.c=0
        self.cc=np.array([])
    #从外部传值进来进行计算
    def nptest(self,x):
       #调用父类同名函数,内部变量仍然共享
       mi.modinheritance.nptest(self,x)
       #self.a是父类中提供的内部变量,继承而来
       self.c=self.b*2
    #返回值
    def getxy(self):
       return [self.aa,self.bb,self.b,self.c]

modinheritance3.py文件的内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#类的继承和派生3
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np
import modclass as mc
import modinheritance as mi

class modinheritance3(mi.modinheritance):
    #初始化,定义内部变量
    def __init__(self):
        mi.modinheritance.__init__(self)
        self.c=0
        self.cc=np.array([])
    #从外部传值进来进行计算
    def nptest(self,x):
       #调用父类同名函数,内部变量仍然共享
       mi.modinheritance.nptest(self,x)
       #self.a是父类中提供的内部变量,继承而来
       self.c=self.b*2-1
    #返回值
    def getxy(self):
       return [self.aa,self.bb,self.b,self.c]

modmultiinheritance.py文件的内容:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#类的多继承和派生
#作者:realasking
#主页:http://realasking.github.io
#2013-10-09

import numpy as np
import modclass as mc
import modinheritance2 as mi2
import modinheritance3 as mi3

class modmultiinheritance(mi2.modinheritance2,mi3.modinheritance3):
    #初始化,定义内部变量
    def __init__(self):
        mi2.modinheritance2.__init__(self)
        mi3.modinheritance3.__init__(self)
        self.cc=np.array([])
    #从外部传值进来进行计算
    def nptest(self,x):
       #调用父类同名函数,内部变量仍然共享
       mi2.modinheritance2.nptest(self,x)
       mi3.modinheritance3.nptest(self,x)
       [a,b,c,d]=mi2.modinheritance2.getxy(self)
       [e,f,g,h]=mi3.modinheritance3.getxy(self)
       self.cc=h*b+f/g
    #返回值
    def getxy(self):
       return [self.cc]

执行结果:

[[email protected] mod_test]$python ./test.py 
第一个函数
1.0 你好
2.0 你好 你好
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[ 0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155 ]
 [ 0.6569866   0.98935825  0.41211849]]
[[ 0.84147098  1.81859485  0.42336002]
 [-3.02720998 -4.79462137 -1.67649299]
 [ 4.59890619  7.91486597  3.70906637]]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[ 0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155 ]
 [ 0.6569866   0.98935825  0.41211849]]
[[ 0.84147098  1.81859485  0.42336002]
 [-3.02720998 -4.79462137 -1.67649299]
 [ 4.59890619  7.91486597  3.70906637]]
[[ 0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155 ]
 [ 0.6569866   0.98935825  0.41211849]]
[[ 0.84147098  1.81859485  0.42336002]
 [-3.02720998 -4.79462137 -1.67649299]
 [ 4.59890619  7.91486597  3.70906637]]
[[ 0.62742108  1.76304538  0.17392737]
 [ 0.34550582 -4.77841949  1.667137  ]
 [-4.56932481  7.90020068 -1.99363595]]
[[ 0.36833317  1.73056479  0.03009844]
 [ 0.11701337 -4.76800625  1.65940619]
 [-4.52264351  7.89176398  1.8180512 ]]
[[  1.32622372e-01   1.70852457e+00   9.05779427e-04]
 [  1.36609043e-02  -4.76063376e+00   1.65289587e+00]
 [ -4.44147235e+00   7.88613188e+00   1.76276049e+00]]
[[  1.75371785e-02   1.69234561e+00   8.20436258e-07]
 [  1.86614503e-04  -4.75509451e+00   1.64732846e+00]
 [ -4.27947407e+00   7.88205653e+00   1.73038103e+00]]
[[  3.07536865e-04   1.67985944e+00   6.73115654e-13]
 [  3.48249724e-08  -4.75075909e+00   1.64250647e+00]
 [ -3.88467867e+00   7.87895041e+00   1.70839371e+00]]
[[  9.45789219e-08   1.66987858e+00   4.53084684e-25]
 [  1.21277870e-15  -4.74726233e+00   1.63828512e+00]
 [ -2.62823228e+00   7.87649452e+00   1.69224667e+00]]
[[  8.94517247e-15   1.66168844e+00   2.05285731e-49]
 [  1.47083218e-30  -4.74437593e+00   1.63455555e+00]
 [  1.29074388e+00   7.87449858e+00   1.67978152e+00]]
[[  8.00161105e-29   1.65482924e+00   4.21422313e-98]
 [  2.16334731e-60  -4.74194900e+00   1.63123425e+00]
 [  1.24045771e+00   7.87284127e+00   1.66981536e+00]]
[[  6.40257794e-057   1.64898987e+000   1.77596766e-195]
 [  4.68007157e-120  -4.73987740e+000   1.62825592e+000]
 [  1.17338934e+000   7.87144118e+000   1.66163597e+000]]
[[  1.68042640e-225   1.63955432e+000   0.00000000e+000]
 [  0.00000000e+000  -4.73652238e+000   1.62313097e+000]
 [  9.55219008e-001   7.86920111e+000   1.64895184e+000]] [[  4.09930043e-113   9.97325369e-001   0.00000000e+000]
 [  2.19030699e-239   9.99669830e-001   9.98500367e-001]
 [  8.82872574e-001   9.99867812e-001   9.96475032e-001]] 2
[[  1.68042640e-225   1.63955432e+000   0.00000000e+000]
 [  0.00000000e+000  -4.73652238e+000   1.62313097e+000]
 [  9.55219008e-001   7.86920111e+000   1.64895184e+000]] [[  4.09930043e-113   9.97325369e-001   0.00000000e+000]
 [  2.19030699e-239   9.99669830e-001   9.98500367e-001]
 [  8.82872574e-001   9.99867812e-001   9.96475032e-001]] 2 4
[array([[  1.43475515e-112,   3.49063879e+000,   0.00000000e+000],
       [  7.66607448e-239,   3.49884441e+000,   3.49475128e+000],
       [  3.09005401e+000,   3.49953734e+000,   3.48766261e+000]])]

Linux下的Vi编辑器的简单用法

Tag:个人文章,以前发布在:Linux下的Vi编辑器的简单用法

本文系以前我学习vi的笔记的一点整理,曾发布于百度空间和分子模拟论坛,现重新整理发布出来,如有转载,请注明出处,谢谢。

──by realasking

vi编辑器的模式

三种模式

命令模式,编辑模式,行编辑模式

模式切换

进入vi即进入了命令模式,切换到行编辑模式按冒号,
进入编辑模式按i键,从后两种模式退出到命令模式按Esc键

vi的启动,保存,放弃保存,放弃保存并退出

启动

vi filename即可打开一个文件进行编辑,如果filename不存在则新建filename

转到另一个文件

假设为filename2,进入行编辑模式,执行:ex filename2

保存

需要进入行编辑模式,在任意模式下按Esc,然后输入:w即可保存

退出

进入行编辑模式,然后按q键,即任意模式下按Esc,然后输入:q

保存并退出

:wq

放弃保存并退出

:q!,其中!表示强制执行

放弃修改

:U,放弃所有的修改

光标控制:

大多需要在命令模式下执行。

光标的上下左右移动

现代的vi可以使用方向键完成,同时保留了传统的设计,即k表示光标上移,j表示光标下移,h左移,l右移
不过在编辑模式下方向键仍然可以用来移动光标

光标按一定的分隔方式移动

(1)到文首: gg , 到文末:G

(2)到屏幕头:H , 到屏幕中间:M ,到屏幕末尾:L

(3)向前翻页(forward):Ctrl+f , 向后翻页(back):Ctrl+b

(4)前翻半页:Ctrl+d , 后翻半页: Ctrl+u

(5)光标移动到上一段开头:{,光标移动到下一段开头:}

(6)光标移动到上一句开头:(,光标移动到下一句开头:)

(7)光标到行首:0, 光标到行首第一个字符:^,光标到行末:$,全文:%

(8)光标到下一个单词开头:w,光标到前一个单词开头:b

编辑操作:

均需要进入行编辑模式

块操作定义

在插入块开始处按Ctrl+v,再把光标移到结束处就可以选定块,
需要注意的是块操作不是以行为单位进行选择的。

标记操作

可以设置a~z个标记,标记操作的做法是mx,其中xa~z中的一个,
标记的引用是:

`x

xa~z中的一个

操作结果放入寄存器

"寄存器名 操作,可以使用的寄存器名为英文字母和数字,如"ayy,即复制本行内容到寄存器a

行标的打开和关闭

打开:set number 关闭:set nonumber

加密

即:X

插入

(1)从光标处插入:i,然后进入编辑模式

(2)从光标后插入:a,然后进入编辑模式

删除

删除:d,默认是删除一行。

删除当前字符:x,命令模式下删除当前光标所在位置字符

查找

(1)查找文件中的字符串:/字符串

(2)继续查找:/

(3)继续查找(向后back):N

替换

s,默认是替换当前字符,一般和查找联合使用,
格式是:

范围,次数s/查找内容/新内容/

移动:m

进入改写模式:R

撤销修改

u,撤销前一次的修改

复制,剪切和粘贴:

复制:y

粘贴

(1)光标前粘贴:p

(2)光标后粘贴:P

(3)粘贴到某行之后:t

命令的复合使用:

按:进入行编辑状态,然后按 次数,操作 的形式进行组合。
比如删除从光标起往前数5个单词,就是:5dw,往下面删除9行(含当前行)就是:9dj
把光标所在处的字母替换成2个i,就是:2ri,复制5行就是:5yj,把第10行复制到第1行
之后:10t1,把文件第1行到第9行的a替换成b:1,9s/a/b/
另:调用系统命令:!命令 即可