VIM中输入特殊符号(digraph二合字母)

  刚学来的,呵呵
  在插入模式下,按Ctrl+k,这时出现一个?提示符。继续输入b*,是不是一个“β”就上屏了。再试一下,Ctrl+K输入1c,是不是㈠就上屏了……
  想输入更多符号?按一下:dig看一下吧
  这就是VIM的二合字母功能,想了解更多?:h
:dig。看中文,在这里:http://vimcdoc.sourceforge.net/doc/digraph.html

>

utf-8时vim显示半个字符的解决办法

【问题】
  set
enc=utf-8有些好处(新建文件默认为utf-8便于和非win系统交流;识别文件编码正确率更高。当然,如果用其他enc没什么不便就无须改)
  但是,这样会让一些中文字符显示不完整。如“”①②→等

【猜测】
  可能是vim不知道这是全角字符,与“对应”的半角字符混淆。今日一查,果然。

【解决】
  set ambiwidth=double

【解释】
  ①:h ambiwidth
  ②下文来自吴咏炜《Vim 实用技术,第 1 部分:
实用技巧》

   ambiwidth=double:把所有的“不明宽度”字符 [9]——指的是在
Unicode
字符集中某些同时在东西方语言中使用的字符,如省略号、破折号、书名号和全角引号,在西方文字中通常字符宽度等同于普通
ASCII 字符,而在东方文字中通常字符宽度等同于两倍的普通 ASCII
字符,因而其宽度“不明”——的宽度置为双倍字符宽度(中文字符宽度)。此数值只在
encoding 设为 utf-8 或某一 Unicode
编码时才有效。需要额外注意的是,如果你通过终端使用 Vim
的话,需要令终端也将这些字符显示为双宽度……

【感受】
  关于vim的问题,看来只要寻找,通常能找到解决办法的。

xvi32:免费的hex editor

  十六进制,或二进制,或binary editor, or hexeditor,对多数人都是偶尔一用。如果购买了Ultraedit,就不用再找额外工具了。不过,有些专门的hex
editor,本身免费又小巧,倒也可一试。
  XVI32,就是这样一款免费软件,但是在国内知名度并不高。如果搜一下,中文结果很少有直接介绍它的,倒是用它修改摩托手机的文章不少。XVI32的名字来自罗马数字,look,16的罗马字母大写就是XVI!
  它完全绿色,作者在官方主页上说,“它不向注册表写任何内容”,当然,也无需安装,解压即可。解压包仅430KB,可谓非常小巧,而功能超群。
  作者说,“甚至微软的人也在用它”,并且有文为证 http://support.microsoft.com/kb/835840/EN-GB/ 此文中提到用hex
editor恢复office文件时,文章作者高度称赞了XVI32.
  它的脚本功能很强(不过,xbeta并未用过,呵呵)

  主页:
 http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvimain.htm
  
  下载:当前版本是2.51,http://www.handshake.de/user/chmaas/delphi/download/xvi32.zip

  主窗口界面如下:

XVI32 provides progress indication in percent
for most operations. The progress window allows also to abort
nearly all operations, e.g. reading/writing files, search, replace,
print...

This example shows how to insert the string
abc 100 times.

XVI32: Find or Count
Strings

This dialog is used for find/count occurences
of text or hex strings. In the above example, the "Text -> Hex"
button was used to convert the text "Borland" into the
corresponding hex string
"42 6F 72 6C 61 6E 64".

XVI32: Replace Text or Hex
String

This converts a DOS file into UNIX file format.
The most recently used text and hex strings for both find and
replace input fields are saved in XVI32.INI file.

XVI32: Character
Conversion

Character conversion is performed using
self-defined character tables. In the above example, character $C0
will be converted to $9C. Each table can be stored in a XCT file to
reload it later.

XVI32: Go To
Address

Enter a decimal or hexadecimal address and go
absolute or relative up/down.

XVI32: Encode and Decode
Numbers

Left: Decode a number. Right: Encode a
number.

XVI32: Bit
Manipulation

XVI32 allows to view or set the bits at the
current address.

XVI32:
Options

 

Here you set general options.

?/P>

These settings determine the appearance of
XVI32. The number of rows and columns can be changed by resizing
the main form, too.

?/P>

Here you define which byte order is used for
coding and decoding numbers as well as what information is shown in
the data inspector.

?/P>

Here you can create or remove a shortcut link
for XVI32 in SendTo folder. This link enables you to right-click on
any file in Windows Explorer and choose Send It There ->
XVI32
to open it with XVI32. Please note that under
Windows

XVI32:
Printing

XVI32: Print
Preview

XVI32: XVIscript
interpreter

 

The built-in XVIscript
interpreter is a powerful feature to autom

(v2/2006-05-29/xbeta/善用佳软 http://blog.s%69na.com.cn/m/xbeta)

>

善用Vim:实例系列(2)

[本文说明]写过多篇Vim应用小文,为方便阅读,现做整理,并删除旧文。以后凡Vim文章,皆归入此系列。另,为便于搜索,统一vim、gvim及大小写为Vim。 –xbeta 2007年12月20日
[本文目录] 1 处理word目录 2 改变大小写 3 制作极点单字库

1 处理word目录

任务:
  从word中把目录复制出来,去除多余信息(标题编号、页码)
命令:
  %s/d|.|s//gc
结果:
  转瞬间200多行1000多字符烟消云灭
附图:
  

2 改变大小写

刚才在BBS上回答了一个问题,当然,这个问题并不复杂。就是“如何把一个文本文件中的大写字母全部替换成小写”。http://www.newsmth.net/bbscon.php?board=NewSoftware&id=840511

  Word当然可以。

  但作为文本,首先想到的还是gVIM,用它如何操作呢?
  打开文件后,不用任何鼠标、菜单,只须在键盘上按下“ggguG”就行了。
  极品软件就是这样:唯有功能强到极致,操作才能简到极致!

解释一下:ggguG分作三段gg gu G
gg=光标到文件第一个字符
gu=把选定范围全部小写

G=到文件结束

3 制作极点单字库

用五笔,我习惯输入单字。为此,就要把词库中的多字词去除。
(之所以不设定为单字模式,因为定义了一些其他词,如bis=http://blog.sina.com.cn/m/xbeta等)
极点有一个这样的工具,但我用的不熟。
想到了强大的VIM文本编辑器,一试,果然成功,并且简便。
与大家分享如下。(如果试验请谨慎,先做好备份。本文作者不对后果承担任何责任)
并感谢杜老师在极点5.0中更正了极点设置后VIM会崩溃的问题。
极点词库格式很简单,编码1-4字母,几个词,用空格分开。例如下:
  |aaff 蓬蓬勃勃 苷
  |aafg 葡萄干
  |aafh 苏东坡
  |aafn 工场
  |aafo 蘜
要去除多于1字的词语,只要2行命令就OK。
用VIM打开词库文件。
执行命令
  :.,$s/ S{2,}( |$)/
/gc
  :.,$g/^a{1,4} $/normal
dd
保存,就完了。
只要2行命令,而每条命令又如此古怪,大家可以想见VIM之功能强大。

  VI是UNIX下文本编辑器的鼻祖。也就是说,基于它有很多改进的分支。
  而VIM则是其中影响力最大的一支。它的第一个版本出现于1976年(哪个软件还有如此长的历史而依然活跃)。
  我以前知道并用过盗版的Ultraedit、Editplus、Emeditor,认识VIM后将它们全舍弃了。
  你能设想VIM是免费开源的吗?
  VIM在windows平台下的版本是gVIM,我用的就是它。
  安装后(包括多国语言文件、插件、语法文件)占空间20M。其实,最少只要一个exe文件不到2M就可以用了。
  有兴趣的可以到华军下载一个。再到网上找找教程,或到水木社区smth.org的VIM版。


:.,$s/ S{2,}( |$)/ /gc

解释如下:
  :表示外部命令
  .,$表示当前行到全文结束
  s表示替换
共有三个/
  前两个//之间是要被替换的旧字符串(正则表达式)。“ S{1,}(
|$)”表示“先有一个空格,再有1-N个非空字符,然后是一个空格或行尾”。
  后两个//之间是要替换为的新字符串,本例中,为一个空格。
  gc表示替换所有匹配的情况,并且每次要用户手工确认(这是为了直观和谨慎,如果有把握,可以不确认,直接执行)。
:.,$g/^a{1,4} $/normal dd
解释如下:
  :表示外部命令
  g表示找到某个字符串,然后执行某个操作
  第一个/之后是要找的字符串,“^a{2,4}
$”表示找“行首,然后是2-4个英文字母,然后空格,然后行尾”
  第二个/之后是要执行的命令,“normal
dd”,在VIM中是删除本行。
(本篇完)

>