LINUX.ORG.RU

Vim 6.4 has been released


0

0

После долгого затишья вышел следующий релиз стабильной ветки одного из лучших редакторов - Vim-а.

Это bugfix release, все новые возможности будут в Vim 7 (пока еще не стабильный).

Официальный аннонс - http://groups.yahoo.com/group/vimanno...

>>> Обновляемся



Проверено: Obidos ()

Ответ на: комментарий от Dselect

> Если _так_ скорячить руку, она отвалится через 5 минут.

Левая рука лежит на AOEU (ASDF в раскладке qwerty). Тогда большой палец левой руки оказывается возле левого края пробела. Чуть подвинул влево -- и он на альте. Надавил левой частью ладони -- нажался контрол. Шифт нажимается и того легче.

> Не понимаю, зачем до него "тянуться": вот он, прям под пальцем.

Если пользоваться десятипальцевой печатью, то до ескейпа не дотянешься не убрав руку с основной позиции, а это плохо. Бесит жутко.

Если не пользоваться десятипальцевой печатью, то работа будет неэффективна в любом редакторе.

nsav-ng
()
Ответ на: комментарий от nsav-ng

> > Никому. Все, что есть, работает _нормально_, а не на соплях.

> То есть, вообще не работать, это значит работать нормально.

Пусть лучше вообще не будет, чем будет вечной бетой...

Весь сакс мастдая в глючности рулезных фич (С) народное творчество.

Умерла так умела (C) народное творчество.


Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> Левая рука лежит на AOEU (ASDF в раскладке qwerty). Тогда большой
> палец левой руки оказывается возле левого края пробела.

А, я понял. Просто у меня рука, мягко говоря, несколько крупнее...

> Чуть подвинул влево -- и он на альте.

Чуть подвинул _вправо_ -- и он на _правом_ alt'е.

> Надавил левой частью ладони -- нажался контрол.

Нажались не только ASDZXC, но и еще что-нибудь... 

По сему control и shift нажимаются мизинцем, alt почти не используется.
нигде практически не используется,

> Если пользоваться десятипальцевой печатью, то до ескейпа не дотянешься
> не убрав руку с основной позиции,

Не надо до него тянутся: слегка распрямить указтельный палец левой руки -- и
в аккурат под ним esc.

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


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

> А, я понял. Просто у меня рука, мягко говоря, несколько крупнее...

Вряд ли.

> По сему control и shift нажимаются мизинцем, alt почти не используется. нигде практически не используется,

control мизинцем нажимать не удобно. Сгибать сильно надо и тогда указательным пальцем не будешь до цифр дотягиваться.

> Не надо до него тянутся: слегка распрямить указтельный палец левой руки -- и в аккурат под ним esc.

Если рапрямить указательный палец левой руки, то он нажмет на Y (T в QWERTY раскладке).

В любом случае xmodmap рулит, поэтому эта проблема немного надумана. Если я был бы виммером, то забиндил бы ескейп на капслок. Правда, лучше туда backspace биндить, но можно использовать C-h. Вариантов много.

Ты мне лучше на два вопроса ответь.

1. Можно ли в виме использовать qwerty для ввода команд, dvorak -- для ввода латинского текста, и йцукен -- для ввода кирилличесого? Если да, то как?

2. Каким образом лучше научится использовать вим? Я в свое время использовал vimtutor, но эффективность работы меня после этого не порадовала.

ЗЫ. Что-то аргументы начинают кончаться... Скучно.

nsav-ng
()
Ответ на: комментарий от nsav-ng

> > А, я понял. Просто у меня рука, мягко говоря, несколько крупнее...
            
> Вряд ли.

Судя по описанию (большой палец левой руки на левом Alt'е -- таки
крупнее... 

> control мизинцем нажимать не удобно. Сгибать сильно надо

Да, хоть на педали выноси... Alt -- еще хуже, потому и bindings с ним
не люблю.

> Если рапрямить указательный палец левой руки, то он нажмет на 
> Y (T в QWERTY раскладке).

Ой, не указательный, а безымянный... А указтельный "6" нажмет.

> и тогда указательным пальцем не будешь до цифр дотягиваться.

Дык дотягиваюсь же...

> 1. Можно ли в виме использовать qwerty для ввода команд, dvorak -- для
> ввода латинского текста, и йцукен -- для ввода кирилличесого?

Можно.

> Если да, то как?

Вот _почти_ решение:

inoremap a a
inoremap b x
inoremap c j
inoremap d e
inoremap e .
inoremap f u
inoremap g i
inoremap h d
inoremap i c
inoremap j h
inoremap k t
inoremap l n
inoremap m m
inoremap n b
inoremap o r
inoremap p l
inoremap q '
inoremap r p
inoremap s o
inoremap t y
inoremap u g
inoremap v k
inoremap w ,
inoremap x q
inoremap y f
inoremap z ;
inoremap ; s
inoremap ' -
inoremap " _
inoremap , w
inoremap . v
inoremap / z
inoremap A A
inoremap B X
inoremap C J
inoremap D E
inoremap E >
inoremap F U
inoremap G I
inoremap H D
inoremap I C
inoremap J H
inoremap K T
inoremap L N
inoremap M M
inoremap N B
inoremap O R
inoremap P L
inoremap Q "
inoremap R P
inoremap S O
inoremap T Y
inoremap U G
inoremap V K
inoremap W <
inoremap X Q
inoremap Y F
inoremap Z :
inoremap < W
inoremap > V
inoremap ? Z
inoremap : S
inoremap [ /
inoremap ] =
inoremap { ?
inoremap } +
inoremap - [
inoremap _ {
inoremap = ]
inoremap + }

set keymap=russian-jcuken

Предполагается, что в X'ах (консоли) раскладка qwerty (если это не так,
то надо наоборот -- nnoremap из dvorak в qwerty, и, возможно, придется
russian keymap отхакать ). В normal mode используется qwerty, в insert
mode - dvorak, insert(lang) -- йцукен. Переключение между русской и 
латинской раскладкой -- по C-^.

> 2. Каким образом лучше научится использовать вим?

Как собака Павлова :)

> Я в свое время использовал vimtutor, но эффективность работы меня
> после этого не порадовала.

Дык там только самое элементарное...

> ЗЫ. Что-то аргументы начинают кончаться... Скучно.

А они и не начинались... Это вопрос вкуса и удобства, т.е. сугубо 
субъективная штука...

Dselect ★★★
()

Экие вы пальцастые ребята.. Во всех смыслах :)

kaaos
()
Ответ на: комментарий от nsav-ng

> Твои предложения? 

Интерфейс с человеком должен быть текстовый. С программой -- бинарным.
Есть много способов, в частности "everythig is a library" (common
runtime + биндинги всего и вся к высокоуровнему языку).

> В общем, насколько я понял, юникс ты презираешь всеми фибрами своей
> души.

[snipped]

> Да, ты явно не понимаешь, что такое unix-way... им не дано...

Дожил. Красноглазые, которые и прожили-то меньше, чем я пропользовал
разные *NIX'ы, слезли с мастдая и начали рассказывать мне про *NIX-way...

> Для нормальных людей процесс давно автоматизирован, чего не скажешь
> про написание биндингов.

Тоже давно автоматизирован. google:swing, google:guile, google:ECL

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

> Обмениваясь последовательностями байт - писать в сокеты/сообщения
> непосредственно структуры - бред.

Не бред, а мечта... Тогда б не надо было костылей вроде MPI...

> Чтобы сгладить различия ABI клиента и сервера.

Да нифига оно не сглаживается. Это костыль, который иногда позволяет
решить проблему... а чаще -- усугубить (либо -- затянуть, а там --
вовремя смыться).

> Особенно в случае если они написаны на разных языках.

Епт, есть же куча встраиваемых [недо]языков, в частности -- всеми
любимый Common LISP.

> > И либо у emacs'а не работает Meta-S, либо не вводятся 8-битные символы.

> А C-\ уже отменили?

Есть XKB, есть локаль, все остальное -- в топку. 


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

> Судя по описанию (большой палец левой руки на левом Alt'е -- таки крупнее...

Странно. Музыкой не занимался?

> Да, хоть на педали выноси... Alt -- еще хуже, потому и bindings с ним не люблю.

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

А педали -- это очень хорошая идея, жаль, что не реализована в массовом производстве.

> Предполагается, что в X'ах (консоли) раскладка qwerty (если это не так, то надо наоборот -- nnoremap из dvorak в qwerty, и, возможно, придется russian keymap отхакать ). В normal mode используется qwerty, в insert mode - dvorak, insert(lang) -- йцукен.

Спасибо, покопаюсь..

> Переключение между русской и латинской раскладкой -- по C-^.

А как это перебиндить на C-\?

> А они и не начинались... Это вопрос вкуса и удобства, т.е. сугубо субъективная штука...

Емакс объективно более мощный, это самый главный аргумент.

nsav-ng
()
Ответ на: комментарий от Dselect

> Интерфейс с человеком должен быть текстовый. С программой -- бинарным. Есть много способов, в частности "everythig is a library" (common runtime + биндинги всего и вся к высокоуровнему языку).

В том то вся и фишка, что вместо человека можно заставить программу кушать вывод другой программы. Это основа основ всего юникса. Архитектура всех системных утилит основана на этом принципе. Странно, что ты об этом не слышал. Или делаешь вид, что не слышал, пытаясь доказать, что емакс не соответствует юникс-вею.

> Тоже давно автоматизирован. google:swing, google:guile, google:ECL

Угу, это избавляет лишь от бремени написания транслятора, все остальные проблемы остаются.

Главная проблема -- проблема различий между языками программирования. Невозможно заставить всех людей пользоваться одним ЯП, с этим надо смириться. А писать биндинги для всех существующих ЯП это очень глупо. Явное противоречие юникс-вею :)

nsav-ng
()
Ответ на: комментарий от Dselect

> Есть XKB, есть локаль, все остальное -- в топку.

Хех, тем не менее, в виме тоже есть такая фича, которая кстати мегаполезная. Или ты не согласен?

nsav-ng
()
Ответ на: комментарий от nsav-ng

> В том то вся и фишка, что вместо человека можно заставить программу
> кушать вывод другой программы. 

У этой идеи ограниченная область применимости (как и у любой другой).
Гонять по pipe'ам гигабайты текста -- идиотизм. Ничем не лучше, чем,
к примеру, конфиги в бинарном виде.

> Это основа основ всего юникса.

Нет. Основы (как я их понимаю), я уже сформулировал.

> что емакс не соответствует юникс-вею.

Таки ни разу не соответствует.

> Невозможно заставить всех людей пользоваться одним ЯП, с этим надо
> смириться.

А это еще почему?

> А писать биндинги для всех существующих ЯП это очень глупо.
> Явное противоречие юникс-вею :)

Да, надо для каждого писать свою VM с нуля, свой компилятор из
byte-code в native, это архиумно и соответствует *NIX way!


Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> > Есть XKB, есть локаль, все остальное -- в топку.
            
> Хех, тем не менее, в виме тоже есть такая фича, 

к сожалению, да.

> которая кстати мегаполезная.

Вред от нее только. Уговаривать отдельно каждую софтину пользоваться
той или иной раскладкой клавиатуры -- маразм.

Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> Странно. Музыкой не занимался?

На гитаре играл.

> > Переключение между русской и латинской раскладкой -- по C-^.

> А как это перебиндить на C-\?

В самом конце, после того, как keymap включили:

inoremap  

А вообще, это плохая идея. C-\ из control tty -- это SIGQUIT. Можно
сгоряча кого-нибудь нечаянно убить :)

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

не любят тут спецсимволов...

> inoremap

Имелось в виду:

inoremap <C-\> <C-^>

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

> У этой идеи ограниченная область применимости (как и у любой другой). Гонять по pipe'ам гигабайты текста -- идиотизм. Ничем не лучше, чем, к примеру, конфиги в бинарном виде.

Если бы компьютер работал бы сам по себе, то да, это полнейший идиотизм. Но есть одна важная деталь -- пользователь. И пользователю надо дать возможность контролировать потоки данных. Каким образом это можно сделать, если поток данных -- структура, специфическая для какого-то языка?

> Нет. Основы (как я их понимаю), я уже сформулировал.

Плохо понимаешь. То, что ты сформулировал, является следствием, а не посылкой. То есть, если главный интерфейс -- это пайпы, по которым качается текст, то естественно утилиты делать маленькими, которые будут выполнять только свою задачу, и будут выполнять ее хорошо. Таким образом, можно достичь неплохой гибкости утилиток. Сложные, комплексные задачи будут решаться с помощью объединения этих утилиток в конвееры.

> Таки ни разу не соответствует.

Ты сначала печенью почувствуй, что такое unix-way, а потом говори.

> А это еще почему?

Разные люди, разные задачи, разные обстоятельства. Куча факторов. И это хорошо, надо сказать. Мы же не роботы в конце концов? Да даже если и были бы роботами, то все равно, в разных случаях рулят разные ЯП.

nsav-ng
()
Ответ на: комментарий от Dselect

> Вред от нее только. Уговаривать отдельно каждую софтину пользоваться той или иной раскладкой клавиатуры -- маразм.

Зато нет проблем с кейбиндингами. Что при русской раскладке, что при английской -- все едино. Или ты можешь предложить другое решение?

nsav-ng
()
Ответ на: комментарий от Dselect

>> > FYC, господа gdb developers, писать костыли для вашей кривой >> > поделки никто не будет.

>> И кому от этого хуже? :)

>А за это по голове бить надо, ногами. C#ки, монополисты похлеще m$, пишут кривую по@$отину, пользуясь тем, что деваться юзверю некуда.

Ну это уж слишком. Что за бред?? Ты что, оплачиваешь их труд? Если тебе не нравится gdb -- напиши свой дебаггер. Слабо? Да, это тебе не #$@лом щелкать на лоре... Кончай курить эту дрянь, плохо кончишь.

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

в биореактор шагом марш

> Что за бред?? Ты что, оплачиваешь их труд? 

Им повезло, что не я. Сгноил бы за такую работу...

> Если тебе не нравится gdb -- напиши свой дебаггер.

Угу, а кому не нравится РБМК-1000 -- пускай свой реактор делает.


Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> Плохо понимаешь. То, что ты сформулировал, является следствием, а
> не посылкой.

Хорошо понимаю. Это ни разу не следствие, это именно исходное положение.

> То есть, если главный интерфейс -- это пайпы, по которым качается
> текст, то естественно утилиты делать маленькими, которые будут
> выполнять только свою задачу, и будут выполнять ее хорошо.

Пайп, не пайп... утилиты в любом случае естественно делать модульными...

> Таким образом, можно достичь неплохой гибкости утилиток.

В силу модульности. А пайпы тут вообще не при чем.

> Сложные, комплексные задачи будут решаться с помощью

... использования этих модулей в других модулях.

> объединения этих утилиток в конвееры.


Блин... Одни дебилы суют программам "человеческий" интерфейс, другие
-- заставляют человека ковырятся в бинарной по@#отине. Да, это 
простейший (и _тупейший_) вариант -- чтоб с человеком и с программой
был один и тот же интерфейс, но и работает он хорошо только в 
простейших случаях.

> то все равно, в разных случаях рулят разные ЯП.

http://dslengine.sourceforge.net/

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

> ... использования этих модулей в других модулях.

Ну так, единственный возможный механизм использования "модулей в других модулях" -- это пайпы. Все остальное -- слишком сложно (например, создание унифицированных структур данных для всех ЯП), не так гибко, переносимо и т. д. Думаешь, от чего венда такая глюкавая, тормознутая, и ненастраиваемая? От того, что там такие как ты, понаделывали всякой заумной фигни, которая никому толком не нужна, зато идейно правильная. Фтопку такие правильные идеи.

> Блин... Одни дебилы суют программам "человеческий" интерфейс, другие -- заставляют человека ковырятся в бинарной по@#отине. Да, это простейший (и _тупейший_) вариант -- чтоб с человеком и с программой был один и тот же интерфейс, но и работает он хорошо только в простейших случаях.

Предложи что-то настолько же простое и гибкое. А то ты грязью поливать вижу мастак, а вот созидательного от тебя я еще ничего не услышал.

> http://dslengine.sourceforge.net/

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

nsav-ng
()
Ответ на: комментарий от nsav-ng

> Ну так, единственный возможный механизм использования "модулей в других модулях" -- это пайпы

Чего!? А вызовы функций уже отмелини? Каналы - это лишь один из способов передачи информации между модулями (для реализации вызовов функций!).

system("mount /dev/cdrom") вызывает функцию монтирования, но через жопу

> Думаешь, от чего венда такая глюкавая, тормознутая, и ненастраиваемая? От того, что там такие как ты, понаделывали всякой заумной фигни, которая никому толком не нужна, зато идейно правильная. Фтопку такие правильные идеи.

funcall заумная фигня? Ты с Lisp в интерактивном режиме работал или нет? Чем тебе Lisp не ОС (более правильная чем Unix)?

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

> Не бред, а мечта... Тогда б не надо было костылей вроде MPI...

При отсутсвии единого ABI - бред. Мечта - единый ABI>

> Есть XKB, есть локаль, все остальное -- в топку.

Согласен, что это костыль, но не худший в Emacs'e... как он со шрифтами работает и unicode просто песня... (матерная)

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

> Чего!? А вызовы функций уже отмелини? Каналы - это лишь один из способов передачи информации между модулями (для реализации вызовов функций!).

Я забыл добавить слово "приемлемый". > funcall заумная фигня? Ты с Lisp в интерактивном режиме работал или нет?

Пока у нас имеется в наличии зоопарк ЯП, ABI, API и прочих подобных радостей, то funcall в контексте интегрированния системных утилит -- действительно фигня.

> Чем тебе Lisp не ОС (более правильная чем Unix)?

Абсолютно согласен, но разговор шел о юниксе и об юникс-way'е.

nsav-ng
()
Ответ на: комментарий от Begemoth

> При отсутсвии единого ABI - бред. Мечта - единый ABI>

единый ABI -- бред.

> он со шрифтами работает и unicode просто песня... (матерная)

Тебе шашечки, или ехать?

nsav-ng
()
Ответ на: комментарий от nsav-ng

> Ну так, единственный возможный механизм использования "модулей в
> других модулях" -- это пайпы

Не единственный. И отнюдь не самый эффективный.

> Думаешь, от чего венда такая глюкавая,

А m$ не волнует, что она глюкавая -- бабки идут, чего ж копошиться-то?

> тормознутая, 

Чтоб юзвери чаще покупали новое железо.

> и ненастраиваемая? 

В силу того, что предназначена для идиотов, которые и не подумают
что-то менять.

> От того, что там такие как ты, понаделывали всякой заумной фигни, 
> которая никому толком не нужна,

Что в NT заумного? 

> зато идейно правильная.

Что там "идейно правильное"?  registry? вонь32 API? GDI?
В ней внутренних противоречий на порядок больше, чем в *NIX. Ни разу 
она не идейно правильная.

> Фтопку такие правильные идеи.

Хорошо, что таких умников не было лет 30 назад, а то б *NIX именно в
эту самую топку и пошел.

Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> > он со шрифтами работает и unicode просто песня... (матерная)

> Тебе шашечки, или ехать?

Про шрифты.

А у меня глаза свои, и не казенные. И ломать их об пЫонерские поделки
я не собираюсь.

Про unicode.

Редактор без поддержки unicode идет в пешее эротическое
путешествие. Поскольку ASCII мне не достаточно, а @$аться с зоопарком
кодировок я не буду (с женщинами надо, а не с кривым, недоделанным
софтом).

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

> Что там "идейно правильное"? registry? вонь32 API? GDI? В ней внутренних противоречий на порядок больше, чем в *NIX. Ни разу она не идейно правильная.

Ну вот, ты просто сам себе противоречишь. Ратуешь против основ юникса, при этом его восхваляя.

> Не единственный. И отнюдь не самый эффективный.

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

nsav-ng
()
Ответ на: комментарий от Dselect

> А у меня глаза свои, и не казенные. И ломать их об пЫонерские поделки я не собираюсь.

Что тебе не нравится в шрифтах емакса?

> Про unicode.

емакс нормально поддерживает юникод и работает в юникодной локали. Что тебе еще нужно?

nsav-ng
()
Ответ на: комментарий от Dselect

> Глядеть в &runtimepath . "/indent"

Так это вообще использовать можно только отчасти. Например, для хаскелля какой-то гуру пытался такой файлик налабать, но и у него уродство вышло.

morge ★★
()
Ответ на: комментарий от nsav-ng

> он со шрифтами работает и unicode просто песня... (матерная)

> Тебе шашечки, или ехать?

Ехать и очень даже. GNU Emacs на Mac OS X до декабря 2004 года кирилицу не умел отображать. И ему было пох на то что в ОС полно средств для работы с Unicode и есть нужные шрифты.

Какого хрена Emacs пытается свою собственную систему работы со шрифтами!? ИМХО подсистема отображения редактора должна быть очень платформенно-зависима и следовать тому как должно работать нормальное приложение в той ОС, а не притягивать за уши собственные механизмы.

ЗЫ: Претензии в стиле Mac OS X sucks, Linux rules не катят.

ЗЗЫ: X-ы в Mac OS X через жопу работают.

ЗЗЫ: Emacs как Unix - говно, но лучшего пока нет.

Begemoth ★★★★★
()
Ответ на: комментарий от nsav-ng

> Ну вот, ты просто сам себе противоречишь. 

> Ратуешь против основ юникса,

Перекачка говна по pipe'ам -- то оcнова канализации, а не *NIX.

> при этом его восхваляя.

*NIX -- как презерватив: никому не нравится, но лучше ничего нет.
Что не мешает говорить о его недостатках.

> Если ты в следующем своем посте не опишешь нормальную замену пайпам,

Уже раза 3 описал, еще раз повторяю: каждый модуль -- библиотека + bindings
к ней.

> то прийдется тебе засчитать слив.

А что такое "засчитать слив"?

Dselect ★★★
()
Ответ на: комментарий от nsav-ng

> > А у меня глаза свои, и не казенные. И ломать их об пЫонерские
> > поделки я не собираюсь.

> Что тебе не нравится в шрифтах емакса?

Упрямство, с которым emacs пытается впарить что-то свое, вместо того,
что указано в xrdb.

> емакс нормально поддерживает юникод и работает в юникодной локали.

Вранье. 

emacs -nw

и кроме ACSII ничерта не наберешь. (С-\ идет лесом по двум причинам,
которые я уже перечислял).

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