LINUX.ORG.RU

Автоматическое определение кодировки в редакторах Nautilus/Krusader


0

1

Дано:

1) много текстовых файлов в кодировках 866, win1251, utf-8.

2) Убунту, GNOME, Nautilus, Krusader

Надо:

Открывать в Nautilus и Krusader эти текстовые файлы в правильной кодировке. Автоматическое определение кодировки в крузадере не работает (даже при ручном выборе в меню - только в подменю «кириллица»).

Нашёл вот такой скрипт:

#!/bin/sh

[ "$#" == 0 ] && \
  exec gedit

while [ "$#" != 0 ]
do
	gedit_codepage="`enca -r -L ru "$1"`"
	case $gedit_codepage in 
	CP1251)
		gedit --encoding=WINDOWS-1251 "$1" &
		;;
	KOI8-*)
		gedit --encoding=KOI8U "$1" &
		;;
	IBM866)
		gedit --encoding=CP866 "$1" &
		;;
	ISO_8859*)
		gedit --encoding=ISO-8859-5 "$1" &
		;;
	*)
		gedit "$1" &
		;;
	esac
	shift
done

При запуске с параметром из консоли оно работает, но пишет «[: 4: 1: unexpected operator» - что надо подправить?

Удалось прикрутить к крузадеру, однако, хотелось бы вместо gedit запускать встроенный редактор крузадера. Возможно ли?

Как прикрутить к наутилусу?

Заодно вопрос: а почему это в крузадере иконки в меню отображаются только из-под рута?

И ещё вопрос заодно: А почему в терминале убунты ни Shift-Ctrl-V не работает, а вставка работает только из меню?

Ещё можешь назначить этот скрипт на «txt»

tn1 ()
Ответ на: комментарий от anonymous

> С каких пор Nautilus/Krusader - редакторы?

Я имел в виду интегрированные редакторы, а не то, что они сами - редакторы.

gconf-editor, и идём к ветке /apps/gedit-2/preferences/encodings

Вот же ж...

Jan007 ()
Ответ на: комментарий от tn1

> Это ФМ.

Это означает «не знаю»?

Ещё можешь назначить этот скрипт на «txt»

Молодой человек, я - шестидесятисемилетний водитель трамвая на пенсии, и иных языков окромя русского и немецкого я не знаю, не могли бы вы изъясняться яснее? Я понятия не имею, как назначить скрипт на txt - можно было бы догадаться, что я впервые увидел линукс позавчера. А если Вы хотите блеснуть эрудицией - расскажите, как называли Леонида Ильича на Привозе. А, так Вы не знаете, как называли Леонида Ильича на Привозе? Ну так не морочьте людям голову!

Jan007 ()
Ответ на: комментарий от tn1

*предположим Вы не тролль*
Кликни по текстовому документу прав кнопкой мыши и выбери открывать его по «твоему скрипту».(там по русски разберёшься)

tn1 ()
Ответ на: комментарий от Jan007

> Я имел в виду интегрированные редакторы, а не то, что они сами - редакторы.

С каких пор в Nautilus есть интегрированный редактор? о_О

neocrust ★★★★★ ()
Ответ на: комментарий от tn1

> *предположим Вы не тролль*

Молодой человек, я Вам в отцы гожусь.

Кликни по текстовому документу прав кнопкой мыши и выбери открывать его по «твоему скрипту».(там по русски разберёшься)

Разобраться-то разберусь, а как потом удалить/отредактировать это действие? Как выбрать его по умолчанию? И что делать с файлами других расширений? И зачем вообще этот скрипт, если gedit и без него отлично работает, надо лишь настроить? Но Вы этого не знали? Не знали ведь? А теперь увиливаете, называете почтенного человека троллем.

Jan007 ()
Ответ на: комментарий от neocrust

С каких пор в Nautilus есть интегрированный редактор? о_О

За что купил, за то и продаю: http://www.linux-ink.ru/static/SL.5.3_Docs/Docs/SLCE/slce-sbs-ru/s1-text-edit..., пункт 10.2.3:

gedit — текстовый редактор среды GNOME. Он подходит для работы с HTML, Perl, C, PHP и другими языками. В gedit есть возможность предварительного просмотра, отмены внесенных изменений, редактирования в нескольких вкладках. gedit интегрирован с приложением Наутилус.

Претензии просьба предъявлять по приведённому выше адресу, я в эксперты по линуксу не набивался.

Jan007 ()
Ответ на: комментарий от tn1

>И ещё

enca

file --mime-encoding file



Я Вас не понимаю. Вообще. Совсем. Вы к кому обращаетесь?

Jan007 ()

При запуске с параметром из консоли оно работает, но пишет «[: 4: 1: unexpected operator» - что надо подправить?

чёртовы code monkeys! во первых у test нет оператора '==', во вторых операторы '=' и '!=' сравнивают строки, а не числовые значения. посему правильно будет:

3c3
< [ "$#" == 0 ] && \
---
> [ $# -eq 0 ] && \
6c6
< while [ "$#" != 0 ]
---
> while [ $# -ne 0 ]
остальное не смотрел.

beastie ★★★★★ ()
Ответ на: комментарий от Jan007

Молодой человек, я Вам в отцы гожусь.

Здесь очень много народу стремится выставить, что они всем и каждому годятся в отцы, так что реакция лоровцев предсказуема и даже оправдана. Если вы действительно в столь зрелом возрасте решили осваивать линукс, вам, конечно, честь и хвала.

Теперь по теме. Гедит обычно автоматически определяет кодировку. Автоматическое определение лично у меня работало плохо только в раннем Debian Lenny (в поздних редакциях уже все было ок). В связи с чем вопрос: какой дистрибутив?

Deleted ()
Ответ на: комментарий от Deleted

С гедитом уже решено (ссылка в третьем ответе от анонимуса), дистрибутив - убунту 10.04. А по поводу отцов - это, так сказать, аллегория. Суть её не вполне цензурна, но она вполне отражает моё отношение к абсолютно необоснованным обвинениям/подозрениям в троллинге.

А предыдущим ответом тому же адресату я хотел напомнить, что мало того, что далеко не все люди являются специалистами по линухам, но более того - далеко не все вообще хотели бы ими стать. Не говоря уже о том, что сам адресат решение (указанное анонимусом) почему-то не подсказал. Я так понимаю - банально не знал. Если это ФМ, то я - испанский лётчик, и, кстати, весьма неплохой.

Jan007 ()
Ответ на: комментарий от Jan007

На ЛОРе стало одним неплохим испанским летчиком больше. Наутилус - это ФМ. Гедит - это редактор, притом не встроенный в наутилус, а вполне себе автономный.

Deleted ()
Ответ на: комментарий от Deleted

Значит я неправильно расшифровал эту аббревиатуру. Ибо если имеется в виду, что это - файловые менеджеры, то ээээ... спасибо, в общем, Капитану...

Jan007 ()

крусадер умеет автоопределение благодаря кделибс. Вим умеет переопределение кодировок на лету

GreyDoom ★★★★ ()

> При запуске с параметром из консоли оно работает, но пишет «[: 4: 1: unexpected operator» - что надо подправить?

Вместо двойного «==» нужно поставить -eq, а вместо "!=" нужно поставить -ne.

Удалось прикрутить к крузадеру, однако, хотелось бы вместо gedit запускать встроенный редактор крузадера. Возможно ли?


Судя по всему, Krusader не поддерживает вызов встроенного редактора из опций командной строки

И ещё вопрос заодно: А почему в терминале убунты ни Shift-Ctrl-V не работает, а вставка работает только из меню?


какой именно терминал? konsole? gnome-terminal? Terminal(xfce)? rxvt? xterm? ...?

В дополнение: есть утилита enconv, входит в состав пакета enca. Она автоматически определяет кодировку (как и enca) и производит конвертацию из найденной кодировки в системную. Если файлы с разными кодировками можно менять (есть права на запись или нет каких-либо административных запретов), то можно раз и навсегда «перегнать» файлы в нужную кодировку и всегда открывать без проблем в предпочитаемом редакторе.

использовать так:

enconv <файл1> <файл2> ...


P.S.:

Молодой человек, я Вам в отцы гожусь.


Вспомнилась бородатая фраза: настоящий интеллигент никогда не скажет «да я е@#л твою маму», он скажет «я Вам в отцы гожусь» :)

Slavaz ★★★★★ ()
Ответ на: комментарий от Deleted

Что-то я начинаю сомневаться, что вам 67.

В нынешние времена ни в чём нельзя быть уверенным...

GreyDoom

крусадер умеет автоопределение благодаря кделибс.

Искаропки? У меня почему-то не работает. Если попытаться открыть файл, например, в win-1251, оно скажет: broken UTF-8 File Opened: the file was opened with UTF-8 encoding but contained invalid charakters. It is set to read-only mode, as saving might destroy the universe its content. Either reopen the file with the correct encoding chosen or enable the read-write mode again in the menu to be able to edit it.

Как исправить?

Slavaz

> И ещё вопрос заодно: А почему в терминале убунты ни Shift-Ctrl-V не работает, а вставка работает только из меню?

какой именно терминал? konsole? gnome-terminal? Terminal(xfce)? rxvt? xterm? ...?

«Терминал среды GNOME 2.30.2»

С клипбоардом вообще какая-то чехарда. После закрытия окна-источника даже простой текст из клипбоарда исчезает, Copy/Paste то работают, то не работают, в окне с терминалом - вообще непонятно. То Ctrl-V работает, то только через меню. Shift-Ctrl-V, как там написано - не работает вообще. Не говоря уж про трушные Shift-Del/Shift-Ins.

Jan007 ()
14 сентября 2011 г.
Ответ на: комментарий от Jan007

Там неправильно пишут. Надо первой кодировкой ставить CURRENT, затем UTF-8, дальше cp1251, а еще дальше последовательность не важна - любая поддерживаемая кодировка будет открываться правильно.

Polugnom ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.