Ru-Board.club
← Вернуться в раздел «Программы»

» Vim

Автор: ASE_DAG
Дата сообщения: 07.10.2011 23:37
mChief
> Но файл http://dl.dropbox.com/u/1979695/utf16le vim открывает неправильно.
Ну, все верно, BOM'а-то нет. Добавляйте BOM в начало файлов в UTF-16 (но не в UTF-8!):
:set bomb
Автор: mChief
Дата сообщения: 08.10.2011 10:00
Теперь понятно. Сохранил его с BOM и он стал открываться нормально.
Но как другие текстовые редакторы открывают его правльно, даже блокнот в windows xp.
Автор: ASE_DAG
Дата сообщения: 08.10.2011 16:22
mChief
> Но как другие текстовые редакторы открывают его правльно,
Не знаю, спросите в ветках по этим редакторам, если хотите. Может быть, используют статистический анализатор — то, что в UTF-16LE есть текст на латинице, в UTF-16BE — набор редких (насколько я понимаю) китайских иероглифов.
Почему для Вима такого нет? Вероятно, не написали, поскольку никому не нужно. А не нужно, вероятно, потому, что UTF-16 — и сама по себе довольно маргинальная кодировка, а без BOM'а ее, вроде бы, вообще не используют.
Хотя нет, вру. В Азии она используется, а значит для азиатских письменностей анализатор есть: FencView + TellEnc. Для латиницы, может быть, и сгодится.

> даже блокнот в windows xp.
А вот для него она как раз «родная».
Автор: ASE_DAG
Дата сообщения: 09.10.2011 01:20
mChief
> fileencodings=ucs-bom,utf8,cp1251,cp866,utf16le,utf16be,koi8r
Кстати говоря, такая последовательность несколько бессмысленна. Точнее, все что перечислено после cp1251 никогда не будет выбрано Вимом, поскольку проверяется только техническая возможность считать файл текстом в той или иной кодировке, но не «осмысленность» этого текста. Однобайтовой же кодовой странице удовлетворяет любая последовательность байт, посему все, что не содержит BOM'а и не может быть UTF-8, будет считаться за CP1251.
Автор: mChief
Дата сообщения: 10.10.2011 13:05
Спасибо за пояснения, теперь с кодировками разобрался.
Автор: exileX
Дата сообщения: 14.10.2011 18:25
Появился вопрос... Чувствую, что ответ кроется в keymapping, но разобраться не могу.

Windows XP, GVim 7.3, расскладка русская, режим вставки.
При нажатии на клавишу "п" (русская просисная "пэ") происходит перевод строки (enter, короче).

Кстати, тоже самое на английской раскладке, если нажать "Alt-o"...

Товарищи, помогите... или идей подкиньте... Что-то худо мне!

---------

Еще вопрос. У кого-нибудь получилось под windows заставить работать nertw и ftp? Или я один такой?)
Автор: ASE_DAG
Дата сообщения: 15.10.2011 12:32
exileX
> расскладка русская
Раскладка какая? Глобальная или вимовская? Или обе сразу?

> или идей подкиньте
Не пользоваться глобальным переключателем раскладок для Вима, если это таки он. Лучше его вообще отключить для гвимовских окон, если ваше окружение это позволяет.
Автор: exileX
Дата сообщения: 15.10.2011 13:01
ASE_DAG

Цитата:
Раскладка какая? Глобальная или вимовская? Или обе сразу?


Таки да - глобальная! Спасибо, проблема решена!

Вопрос по nertw и ftp остается открытым. Пока использую FtpDrive. Но хотелось бы средствами Vim.
Автор: ASE_DAG
Дата сообщения: 15.10.2011 13:41
exileX
> Спасибо, проблема решена!
Да не за что.

> Вопрос по nertw и ftp остается открытым.
А собственно можно поподробнее? Что не работает (только FTP, но к любому серверу?), какие ошибки выдает, ну и все тому подобное?

> Пока использую FtpDrive. Но хотелось бы средствами Vim.
А зачем, если не секрет? Монтирование удаленной ФС в локальную обычно считается более предпочтительным решением. Другое дело, что оно не всегда возможно, но здесь-то что?
Автор: exileX
Дата сообщения: 15.10.2011 14:10

Цитата:
Что не работает (только FTP, но к любому серверу?), какие ошибки выдает, ну и все тому подобное?


При попытке открыть файл на _любом_ ftp-сервере постоянно вылазит ошибка:

E485: Невозможно прочитать файл C:/TEMP/VI***.tmp

в _vimrc добавил строку:


Код: let g:netrw_ftp_cmd= "ftp -s:c:\\_netrc"
Автор: exileX
Дата сообщения: 21.10.2011 18:15

Цитата:
При попытке открыть файл на _любом_ ftp-сервере постоянно вылазит ошибка:

E485: Невозможно прочитать файл C:/TEMP/VI***.tmp


Проблема решилась. Установил переменную окружения SHELL=cmd.exe.
Автор: anynamer
Дата сообщения: 25.11.2011 00:51
Подскажите, почему у меня в консольной версии не видно некоторых русских букв?
Автор: ASE_DAG
Дата сообщения: 25.11.2011 01:59
anynamer
> почему у меня в консольной версии не видно некоторых русских букв?
а) не только у вас;
б) «почему» — я так и не узнал, но решается это (внезапно!) сменой шрифта на TTF (на Lucida Console, например); ну или (что в общем случае более предпочтительно) сменой эмулятора терминала.
Автор: kuznetsovs
Дата сообщения: 04.12.2011 13:21
Jenyay Спасибо за хорошие статьи!
Автор: anynamer
Дата сообщения: 04.12.2011 16:27
ASE_DAG спасибо за прояснение ситуации.
Автор: ASE_DAG
Дата сообщения: 05.12.2011 03:42
anynamer
Всегда пожалуйста. ;-)
Хотя прояснением это назвать сложно. Если когда-нибудь узнаете причины такого сверхстранного поведения, сообщите сюда, пожалуйста, мне интересно было бы узнать.
Автор: Alukardd
Дата сообщения: 09.01.2012 23:27
Уважаемые, подскажите как сделать так, что бы vim обрабатывал \u202E (RIGHT-TO-LEFT) корректно?
Мне нужно это только для одной строки в середине файла. То, что он может запускаться целиком в right-to-left моде меня не особо интересует... (vim -A или :set rl или :set rightleft)
GEdit например корректно обрабатывает символ \u202E, а vim просто печатает <202e>, почему он не умеет его применять?

p.s. и если кто в теме, то как в bash и zsh при cat file тоже получить все отформатировано, а то они просто игнорят этот символ?
Автор: ASE_DAG
Дата сообщения: 10.01.2012 13:01
Alukardd
> то как в bash и zsh при cat file тоже получить все отформатировано, а то они просто игнорят этот символ?
Шеллов этот вопрос вообще не касается; вывод — задача (эмулятора) терминала. Поставьте тот, что умеет двунаправленный текст — mlterm, например, и все будет:

И в Виме (терминальном) в том числе.

А Г-Вим — тот, афайк, двунаправленный текст пока не умеет, увы.
Автор: Alukardd
Дата сообщения: 10.01.2012 15:22
ASE_DAG
поставил mlterm...
cat отработал корректно по файлу созданному в vim, а вот vim так и продолжает печатать просто как unicode символ.
Автор: ASE_DAG
Дата сообщения: 10.01.2012 15:56
Alukardd
mlterm — сверху, снизу — xterm.


> unicode символ
А он (RLO) здесь вообще нужен? В файле, что на снимках выше, его вовсе нет, тем не менее, все выводится корректно.
Автор: Alukardd
Дата сообщения: 10.01.2012 20:00
ASE_DAG
У меня всё вот так:
gnome-terminal:


mlterm:


gedit:


Так вот, хочется что бы было везде как в gedit
Автор: ASE_DAG
Дата сообщения: 19.01.2012 04:59
Alukardd
Возвращаясь к последней теме.
Ответа на ваш вопрос я не знаю, да и сомневаюсь, что положительный ответ на настоящий момент существует. Но до сих пор меня распирает любопытство — зачем вам спонадобилось выводить латиницу справа налево.
Автор: anynamer
Дата сообщения: 21.01.2012 02:23
Хорошая новость для владельцев iOS устройств - Vim портирован для них:
http://itunes.apple.com/app/vim/id492668168

Добавлено:
ASE_DAG

Цитата:
Если когда-нибудь узнаете причины такого сверхстранного поведения, сообщите сюда, пожалуйста, мне интересно было бы узнать.

Конечно.
Автор: Alukardd
Дата сообщения: 09.02.2012 21:54
ASE_DAG
Just for Fun!

anynamer
я всё гадал, но так норм ответа и не придумал - а нахрена ViM без реальной qwerty клавиатуры? Это же убиться можно им пользоваться с виртуальной клавой.
p.s. кстати, давно хочу к своим андроид лыжам прикупить BT клавиатуру.
Автор: Weinaum
Дата сообщения: 09.02.2012 22:06
приветствую,
подскажите, как проще всего, с помощью сабжа решить такую задачу.
Есть большой текстовый файл, содержащий около 500 000 строк.
Необходимо по заданному слову или словосочетанию все строки, содержащие данное слово, вынести в отдельный файл. Ну то есть в консоли конечно же...дал команду и рядом с исходным получил новый файл.
Автор: Alukardd
Дата сообщения: 09.02.2012 22:10
Weinaum
Можно, конечно, но зачем?

Тут awk, имхо, гораздо удобнее
Код: gawk '/слово/{print $0}' /путь/до/исходного/файла > /файл/для/вывода
Автор: ASE_DAG
Дата сообщения: 10.02.2012 15:18
Weinaum
Действительно, зачем Вимом-то? Он не предназначен для неинтерактивной работы.

Но если хотите, то вот так:
$ vim '+redir >/tmp/out.txt' '+g/your pattern/' '+q!' /tmp/in.txt




Alukardd
ШАПКА> Книга - "Просто о Vim"
Это вы добавили, что ли?


Цитата:
Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант.


Да, книга хорошая, годная; спасибо, что напомнили про нее. Но переводчик, увы, с русским языком в очень натянутых отношениях. Поэтому, если вы не возражаете, я
а) перенесу все-таки ее в более подходящий раздел шапки («Документация», а не «Ресурсы»),
б) основную ссылку дам на оригинал, и только дополнительную на перевод (как в случае «Возвращением к Виму», хотя там проблема иная — не с русским языком, а с листингами, где встречается какой-то мусор).



#:бэкап шапки (исходный вариант)

#:бэкап шапки (исправленный вариант)
Автор: Weinaum
Дата сообщения: 10.02.2012 18:49
Alukardd
ASE_DAG
спасибо, все варианты рабочие.
сорри за еще один вопрос, возможно, опять офф для данной темы, если что, перекиньте ответ в тему более подходящую..
В общем, задача та же, только несколько усложненная,
опять же, нужно сделать выборку из данного текст файла, только не по одному, а последовательно по нескольких словам, вывести все это в новый файл, после чего в этом файле могут быть строки-дубли, причем может быть не только 2, но и больше одинаковых строк, необходимо будет из дублей оставить по одной строке, остальные поудалять.
Автор: Alukardd
Дата сообщения: 10.02.2012 20:05
ASE_DAG
Ну что перенесли эт хорошо - да, это мы (Алексей Михайлович, можно просто Царь).
Да прочитал я это, конечно же. Просто я иногда еще и думаю а стоит ли оно того? И понял что нет - ради кого отписываться? Ради таких как Вы и я - думаю оно нам не актуально, а ради новичков - так они тему редко пролистывают, шапку-то не всегда читают...

Weinaum
практически все вопросы по парсингу файлов решаются на awk в теме, которую вы уже знаете - UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;
Автор: Quasus
Дата сообщения: 08.05.2012 10:10
[more] Здравствуйте.

У меня vim 7.3 на Windows. Собственно, настоящая проблема как раз из-за Windows.

Экспериментирую с фильтрацией (filtering) с помощью python-а 3.2.

В vim-e текстовый файл в utf-8. Получать текст из питона я пробовал следующими способами:
sys.stdin.read()
— работает для русских и английских букв. Если сделать
sys.stdin.buffer.read().decode('cp1251'),
аналогично. Если же
sys.stdin.buffer.read().decode('utf-8'),
то для русских не работает. Для греческих букв в исходном файле не работает ни в каком варианте.

Насколько понимаю, когда вим передаёт текст питону, последний почему-то уверен, что это cp1251. Есть ли способ его разубедить?

Для полноты изложения пример скрипта:

Код:
import sys
#inp=sys.stdin.buffer.read().decode('cp1251')
inp=sys.stdin.read()
outp=inp + '\n&#945;&#946;&#947;&#948;.'
sys.stdout.buffer.write(outp.encode())
# the following assumes the output should be in cp1251
# and doesn't accept Greek letters
#sys.stdout.write(outp)

Страницы: 1234

Предыдущая тема: 1C: вопросы по Конфигурациям


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.