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)
3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser