语法插件从WP-Syntax替换为SyntaxHighlighter Evolved

今天正好有些时间,索性将语法插件从WP-Syntax替换为SyntaxHighlighter Evolved。

由于是通过后台SQL进行处理的,出现了不少问题,经过3小时奋战,还是调整的差不多了。

现在有两个问题:
1、太长的代码要么不换行,要么换行不好看
2、有些语法不支持,如per,Io,go等
3、应该还有一些SQL操作的遗留问题,后面发现再调整吧

	'as3'           => 'as3',
	'actionscript3' => 'as3',
	'bash'          => 'bash',
	'shell'         => 'bash',
	'coldfusion'    => 'coldfusion',
	'cf'            => 'coldfusion',
	'clojure'       => 'clojure',
	'clj'           => 'clojure',
	'cpp'           => 'cpp',
	'c'             => 'cpp',
	'c-sharp'       => 'csharp',
	'csharp'        => 'csharp',
	'css'           => 'css',
	'delphi'        => 'delphi',
	'pas'           => 'delphi',
	'pascal'        => 'delphi',
	'diff'          => 'diff',
	'patch'         => 'diff',
	'erl'           => 'erlang',
	'erlang'        => 'erlang',
	'fsharp'        => 'fsharp',
	'groovy'        => 'groovy',
	'java'          => 'java',
	'jfx'           => 'javafx',
	'javafx'        => 'javafx',
	'js'            => 'jscript',
	'jscript'       => 'jscript',
	'javascript'    => 'jscript',
	'latex'         => 'latex', // Not used as a shortcode
	'tex'           => 'latex',
	'matlab'        => 'matlabkey',
	'objc'          => 'objc',
	'obj-c'         => 'objc',
	'perl'          => 'perl',
	'pl'            => 'perl',
	'php'           => 'php',
	'plain'         => 'plain',
	'text'          => 'plain',
	'ps'            => 'powershell',
	'powershell'    => 'powershell',
	'py'            => 'python',
	'python'        => 'python',
	'r'             => 'r', // Not used as a shortcode
	'splus'         => 'r',
	'rails'         => 'ruby',
	'rb'            => 'ruby',
	'ror'           => 'ruby',
	'ruby'          => 'ruby',
	'scala'         => 'scala',
	'sql'           => 'sql',
	'vb'            => 'vb',
	'vbnet'         => 'vb',
	'xml'           => 'xml',
	'xhtml'         => 'xml',
	'xslt'          => 'xml',
	'html'          => 'xml',

修改WordPress域名

比如,我需要把域名dm01.neohope.org换为dm02.neohope.org,需要进行以下操作:

1、如果需要,可以重命名wordpress文件夹

2、如果需要,修改wordpress的数据库设置

3、更新wordpress主配置

UPDATE wp_options SET option_value = replace( option_value, 'dm01.neohope.org', 'dm02.neohope.org' ) WHERE option_name = 'home' OR option_name = 'siteurl';  

4、更新posts

UPDATE wp_posts SET post_content = replace( post_content, 'dm01.neohope.org', 'dm02.neohope.org' ) ;  
UPDATE wp_posts SET guid = replace( guid, 'dm01.neohope.org', 'dm02.neohope.org' ) ;  

5、更新comments

UPDATE wp_comments SET comment_content = replace(comment_content, 'dm01.neohope.org', 'dm02.neohope.org') ;
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'dm01.neohope.org', 'dm02.neohope.org')

6、搞定

修改WordPress数据库前缀

一般来说,为了数据安全,大家都很修改一下WordPress数据的前缀,而不是使用默认的wp_。
修改WordPress数据库前缀步骤如下:

1、备份数据库
2、打开wp-config.php文件,修改table_prefix变量

$table_prefix  = 'wp_a123456_';

3、使用phpMyAdmin修改数据库中的表名

RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;

4、修改Options表

SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%'

将前缀全部修改掉。

5、修改UserMeta表

SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'

将前缀全部修改掉。

6、现在应该正常工作了,记得再次备份哦。

7、数据库很小的话,可以全部导出,用vim修改后,再全部导入,会简单一些哦。

参考:
How to Change the WordPress Database Prefix to Improve Security

Windows下Emacs使用SBCL

今天配置Emacs时,发现Emacs无法使用SBCL,其默认为lisp。
会报下面的错误:

Searching for program: no such file or directory, lisp 

这个问题可以用一个变通的方法解决,在Emacs路径下建立下面的文件:
lisp.bat

@rem start sbcl
D:\CommonLisp\sbcl-1.1.17\sbcl.exe --core "D:\CommonLisp\sbcl-1.1.17\sbcl.core"

然后就可以使用啦。

还是linux下面简单一些,符号链接直接搞定:

ln -s /usr/bin/clisp /usr/bin/lisp

Evernote本地用户失效

今天打开Evernote后更新失败,并提示:
Synchronization failed. Invalid username or password.

除了升级了一下,还真没做什么,准备退出再登陆,又怕本地修改丢失,查了下,最后发现:
关闭Evernote后,运行命令行

Evernote.exe /NoLastLogin

重新登录就好啦:)

Eclipse开发插件

ADT:
https://dl-ssl.google.com/android/eclipse/

DLTK:
http://download.eclipse.org/technology/dltk/updates/

PyDev:
http://pydev.org/updates

EPIC:
http://e-p-i-c.sf.net/updates

PDT:
http://download.eclipse.org/tools/pdt/updates/2.0
http://download.eclipse.org/tools/pdt/updates/3.0/milestones/

指定JDK

eclipse.exe -vm D:\JavaJDK\jdk1.7.0_06\bin\javaw.exe

Linux常用命令10Vim常用操作

0.基本操作
0.1多行复制
0.1.1、复制方法一
A、将光标移动到要复制的起始行
B、如果复制1行,则按下yy,如果是复制n行,则按下nyy
C、光标移动到粘贴地点,按下p

0.1.2、复制方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no co target_line_no

0.1.3、复制方法三(方法二+标签)
A、将光标移动到要复制的起始行,输入ma
B、将光标移动到要复制的结束行,输入mb
C、将光标移动到要复制的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b co ‘c

0.1.4、剪切方法一
A、将光标移动到要剪切的起始行
B、如果剪切1行,则按下dd,如果是剪切n行,则按下ndd
C、光标移动到粘贴地点,按下p

0.1.5、剪切方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no m target_line_no

0.1.6、剪切方法三(方法二+标签)
A、将光标移动到要剪切的起始行,输入ma
B、将光标移动到要剪切的结束行,输入mb
C、将光标移动到要剪切的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b m ‘c

1.正则表达式
1.1.行首、行尾及空格
1.1.1 符号具体含义

^表示行首
$表示行尾
\s表示空格

1.1.2 应用举例

在全局范围内删除开始空格
:%s/^\s\+/

删除末尾空格
:%s/\s\+$/

删除空行
:g/^$/d

删除空白行
:g/^\s\+$/d

删除-开始的行
:g/^-/d

2.Table与空格互转
2.1、空格转TAB

:set ts=8
:set expandtab
:%retab!

2.2、TAB转空格

:set ts=8
:set noexpandtab
:%retab!

3.删除重复行
3.1、方法一

先排序
:sort
然后删除的重复项的后面一项
:g/\%(^\1$\n\)\@<=\(.*\)$/d

3.2、方法二

先排序
:sort
然后删除重复项的前面一项
:g/^\(.*\)$\n\1$/d

3.3、方法三

先排序
:sort
然后将所有重复记录替换为第一条
:%s/^\(.*\)\(\n\1\)\+$/\1/

4.奇偶行
4.1、删除奇数行

%s/\(^.*$\)\n\(^.*$\)/\1

4.2、删除偶数行

%s/\(^.*$\)\n\(^.*$\)/\2

4.3、奇偶行合并,以tab分隔

%s/\(^.*$\)\n\(^.*$\)/\1\t\2

%s/\n\(.*\n\)/\t\1

5.生成行号
5.1、方法1

:r !seq 1 100

5.2、方法2

:let n=0 | g/^/s//\=n/|let n+=1 

6、每行首字母大写

%s/^\([a-z]\)/\U\1/

语法插件

WP-SYNTAX插件很不错,但经常找语言代码就不好了,
下面是它的语言表,希望对大家有用:)

$lookup = array(
    '6502acme' => array( 'a', 's', 'asm', 'inc' ),
    '6502tasm' => array( 'a', 's', 'asm', 'inc' ),
    '6502kickass' => array( 'a', 's', 'asm', 'inc' ),
    '68000devpac' => array( 'a', 's', 'asm', 'inc' ),
    'abap' => array('abap'),
    'actionscript' => array('as'),
    'ada' => array('a', 'ada', 'adb', 'ads'),
    'apache' => array('conf'),
    'asm' => array('ash', 'asm', 'inc'),
    'asp' => array('asp'),
    'bash' => array('sh'),
    'bf' => array('bf'),
    'c' => array('c', 'h'),
    'c_mac' => array('c', 'h'),
    'caddcl' => array(),
    'cadlisp' => array(),
    'cdfg' => array('cdfg'),
    'cobol' => array('cbl'),
    'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
    'csharp' => array('cs'),
    'css' => array('css'),
    'd' => array('d'),
    'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
    'diff' => array('diff', 'patch'),
    'dos' => array('bat', 'cmd'),
    'gdb' => array('kcrash', 'crash', 'bt'),
    'gettext' => array('po', 'pot'),
    'gml' => array('gml'),
    'gnuplot' => array('plt'),
    'groovy' => array('groovy'),
    'haskell' => array('hs'),
    'html4strict' => array('html', 'htm'),
    'ini' => array('ini', 'desktop'),
    'java' => array('java'),
    'javascript' => array('js'),
    'klonec' => array('kl1'),
    'klonecpp' => array('klx'),
    'latex' => array('tex'),
    'lisp' => array('lisp'),
    'lua' => array('lua'),
    'matlab' => array('m'),
    'mpasm' => array(),
    'mysql' => array('sql'),
    'nsis' => array(),
    'objc' => array(),
    'oobas' => array(),
    'oracle8' => array(),
    'oracle10' => array(),
    'pascal' => array('pas'),
    'perl' => array('pl', 'pm'),
    'php' => array('php', 'php5', 'phtml', 'phps'),
    'povray' => array('pov'),
    'providex' => array('pvc', 'pvx'),
    'prolog' => array('pl'),
    'python' => array('py'),
    'qbasic' => array('bi'),
    'reg' => array('reg'),
    'ruby' => array('rb'),
    'sas' => array('sas'),
    'scala' => array('scala'),
    'scheme' => array('scm'),
    'scilab' => array('sci'),
    'smalltalk' => array('st'),
    'smarty' => array(),
    'tcl' => array('tcl'),
    'vb' => array('bas'),
    'vbnet' => array(),
    'visualfoxpro' => array(),
    'whitespace' => array('ws'),
    'xml' => array('xml', 'svg', 'xrc'),
    'z80' => array('z80', 'asm', 'inc')
);

c语言测试

//lang="c"
int main(int argc,char** argv)
{
    printf("Hello World\n");
    return 0;
}

c++语言测试

//lang="cpp"
using namespace std;
int main(int argc,char** argv)
{
    cout<<"Hello World"<<endl;
    return 0;
}
&#91;/code&#93;

Objective-C语言测试
&#91;code lang="objc"&#93;
#import <Foundation/Foundation.h>

int main(int argc, char**argv)
{
	NSString *hello = @"Hello World\n";
	NSLog(hello);
	[hello release];
	return 0;
}

java语言测试

//lang="java"
public static void main(String[] args)
{
    System.out.println("Hello World!");
}

bash脚本测试

#!/bin/bash
#lang="bash"
HI="Hello World!"
echo $HI

bat脚本测试

REM lang="bash"
echo "Hello World!"