我使用pdftk解压缩了一个PDF文件,我正在尝试使用regexp在Emacs中编辑它。
问题是这个文件有重音字符,Emacs将它们显示为八进制序列:例如\340
代表à。要编辑此文件,我有两种可能性(至少我认为是这样)。
a)应用一种编码,使Emacs显示实际的重音字符,而不是八进制等效字符。 Vim已正确显示重音字符;
b)使用regexp搜索八进制序列。
至于a),我试过(set-buffer-file-coding-system'utf-8-dos),(set-buffer-file-coding-system'utf-8-unix),(set- buffer-file-coding-system'raw-text)没有成功。
对于b),在应用set-buffer-file-coding-system之后,我能够使用C-q ... RET
增量搜索八进制序列,但是我无法做到我真正需要的东西:替换字符串。实际上C-q ... RET
在使用M-%
或C-M-%
时与八进制序列不匹配。 C-x 8
也不起作用。 `...
提前致谢。 安东尼奥
答案 0 :(得分:1)
在访问PDF文件的缓冲区中尝试以下键序列:
C-x RET r 字符编码 RET
这将使用您指定的字符编码重新访问该文件。
或者,如果要在访问文件之前指定要使用的字符编码,则可以执行
C-x RET c 字符编码 RET
在输入之前 C-x C-f 。
有关详细信息,请参阅documentation。
答案 1 :(得分:0)
@Stefan
实际上我并没有谈到保存方面的差异,而是在展示。
在这两种情况下,关闭和重新打开文件会使文件保持原样,没有明显的变化。
至于显示,(set-buffer-file-coding-system 'windows-1252-unix)
模式行从(Unix) ---
变为(Unix) **-
,表示代码系统没有发生变化,实际上缓冲区中的字符是相同的(八进制序列是还在那儿)。
使用(revert-buffer-with-coding-system'windows-1252-unix)时,模式行从(Unix) ---
更改为* (Unix) ---
,表示代码系统已更改为{{1} },根据windows-12**
助记符,实际上八进制序列与其等效的重音字符一起显示。
如果我将M-x list-coding-systems
应用于其他缓冲区,例如临时,后者会从(set-buffer-file-coding-system 'windows-1252-unix)
更改为1\--
。因此,对于此缓冲区,是从* (Unix) **
到latin-1-dos
的实际广告变更。
这可能是一个连贯的设计,我不知道。
安东尼奥