Tema: Emacs, grep, koduotės
Autorius: Laimis
Data: 2010-06-20 18:16:47
Sveiki,
Jei kas naudoja Emacs'ą (ypač winos) ir dar grep'ina krūvas skirtingų
koduočių failų (na, norėtų tai daryti), tai turėjo susidurti su problema
-- grep'as ieško utf-8 koduotėje (t.y. tokia -- viena -- koduote gauna
argumentus iš Emacs'o).
Taip, yra C-x RET c coding RET (universal-coding-system-argument),
tačiau nepatogu, painu.
Taip, galima išeiti į shell'ą ir ten nupipe'inti per iconv, tačiau
nepatogu, painu, be to prarandama patogi grep-mode sąsaja.
Sprendimas: įsidėkit tai į .emacs:
(defun grep-setup ()
;;(setenv "LANG" "lt_LT")
(make-local-variable 'coding-system)
(make-local-variable 'coding-system-for-read )
(make-local-variable 'coding-system-for-write)
(setq coding-system
(read-coding-system "Kokia koduote grep'inti?: " 'nil))
(setq coding-system-for-read coding-system)
(setq coding-system-for-write coding-system))
(add-hook 'grep-setup-hook 'grep-setup)
Po suvestos grep komandinės eilutės bus paklausta kokia koduote grep'inti.
Tiesa, cygwin'o grep'as kiek grybauja su utf-8, todėl winos
rekomenduočiau naudoti šį:
http://gnuwin32.sourceforge.net/packages/grep.htm
p.s. bandyta su GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600)