Тонкая настройка vim (делимся полезностями в .vimrc. Вопросы задавайте в отдельных темах!)

и другие vi-подобные редакторы

Модератор: /dev/random

Аватара пользователя
кып
Сообщения: 77
ОС: Xubuntu

Re: Тонкая настройка vim

Сообщение кып » 28.05.2012 20:53

Вот в этом посте интерсной дискусии наткнулся на вот это: g[hjkl] Уважаемые гуру vim-а объясните что сие означает.
Спасибо.
Спасибо сказали:

IMB
Сообщения: 2450
ОС: Debian

Re: Тонкая настройка vim

Сообщение IMB » 28.05.2012 21:13

кып писал(а):
28.05.2012 20:53
наткнулся на вот это: g[hjkl] Уважаемые гуру vim-а объясните что сие означает.

http://ru.wikibooks.org/wiki/Vim#.D0.9F.D0....B9.D0.BB.D1.83
Спасибо сказали:

Аватара пользователя
кып
Сообщения: 77
ОС: Xubuntu

Re: Тонкая настройка vim

Сообщение кып » 29.05.2012 13:01


Спасибо конечно, но как прермщатся по тексту с помощью hjkl я знаю. Вопрос в том что там делает g
По приведенной мной ссылке написано так:
пока не приучишь себя прыгать по строкам с помощью g[hjkl] вместо [hjkl].

вот меня и заинтересовало что за g
Спасибо сказали:

Аватара пользователя
diesel
Модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Тонкая настройка vim

Сообщение diesel » 29.05.2012 13:16

кып писал(а):
29.05.2012 13:01
пока не приучишь себя прыгать по строкам с помощью g[hjkl] вместо [hjkl].

вот меня и заинтересовало что за g

напишите строчку, без ньюлайнов, которая в одну строку на экране не влезает. И попробуйте на ней gj gk. (gh, gl - это я переборщил, в том контексте о котором шла речь)

PS:
 только

Код: Выделить всё

:set wrap

не забудьте...
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4843
ОС: Gentoo

Re: Тонкая настройка vim

Сообщение /dev/random » 29.05.2012 13:17

кып писал(а):
29.05.2012 13:01
Спасибо конечно, но как прермщатся по тексту с помощью hjkl я знаю. Вопрос в том что там делает g

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

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Тонкая настройка vim

Сообщение sash-kan » 29.05.2012 13:21

кып
:h gk
:h gj
gh и gl — это из другой оперы·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
кып
Сообщения: 77
ОС: Xubuntu

Re: Тонкая настройка vim

Сообщение кып » 04.06.2012 16:02

sash-kan, /dev/random, diesel большое спасибо за ответы.
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4655
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Тонкая настройка vim

Сообщение SLEDopit » 04.06.2012 17:41

Наткнулся в интернетах на чудесный хак:

Код: Выделить всё

" Set scripts to be executable from the shell
au BufWritePost * if getline(1) =~ "^#!/bin/" | silent !chmod +x <afile> | endif
При сохранении скрипта, у которого не забыли указать ша-банг, файлу выставляется execute бит, что не может не радовать (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Тонкая настройка vim

Сообщение drBatty » 04.06.2012 19:38

кып писал(а):
29.05.2012 13:01
вот меня и заинтересовало что за g

на самом деле g это расширение команды, многие фичи записываются именно через g.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
Yaros
Сообщения: 500
ОС: Debian Wheezy / Gentoo

Re: Тонкая настройка vim

Сообщение Yaros » 04.06.2012 22:57

SLEDopit писал(а):
04.06.2012 17:41
Наткнулся в интернетах на чудесный хак:

Код: Выделить всё

" Set scripts to be executable from the shell
au BufWritePost * if getline(1) =~ "^#!/bin/" | silent !chmod +x <afile> | endif
При сохранении скрипта, у которого не забыли указать ша-банг, файлу выставляется execute бит, что не может не радовать (:

Если не секрет, что значит BufWritePost * ?
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4843
ОС: Gentoo

Re: Тонкая настройка vim

Сообщение /dev/random » 04.06.2012 23:01

Yaros писал(а):
04.06.2012 22:57
Если не секрет, что значит BufWritePost * ?

После сохранения файла. См. :h autocmd и :h autocmd-events
Спасибо сказали:

Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Тонкая настройка vim

Сообщение ZyX » 18.07.2012 08:35

drBatty писал(а):
04.06.2012 19:38
кып писал(а):
29.05.2012 13:01
вот меня и заинтересовало что за g

на самом деле g это расширение команды, многие фичи записываются именно через g.

Ничего подобного. g и z используются, так как на клавиатуре закончились клавиши. Для множества команд <key>, g<key> и/или z<key> как‐то связаны (вроде h, gh, zh) — для того, чтобы эту последовательность было легче запомнить и использовать, точно так же, как иногда связаны команды в верхнем и нижнем регистрах. Для другого множества — никак.
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 22.07.2014 09:08

Всем доброго времени суток!!!

Warderer, большое Вам спасибо за тему..., неа, сказать: "большое спасибо", это ни чего не сказать!!! СПАСИБИЩЕ!

Я только открыл для себя vim, в процессе освоения возникло пару вопросов. Найти самому не получилось, возможно, из-за не опытности не рассмотрел ответ.

Подскажите, можно ли в vim выполнить одну и туже команду с разными данными в одной строке:

Код: Выделить всё

:g/123/d :g/321/d


И еще, можно к примеру :help mark, запустить на русском?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тонкая настройка vim

Сообщение Bizdelnick » 22.07.2014 10:36

DONBASS
Можно задать шаблон, соответствующий всем нужным вариантам: :g/123\|321/d. Собственно, vim тут по большому счёту ни при чём, учите регулярные выражения.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 22.07.2014 17:39

Bizdelnick писал(а):
22.07.2014 10:36
DONBASS
Можно задать шаблон, соответствующий всем нужным вариантам: :g/123\|321/d. Собственно, vim тут по большому счёту ни при чём, учите регулярные выражения.

Спасибо, Bizdelnick!
Результат получается разный, если делать по отдельности и одной строкой.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тонкая настройка vim

Сообщение Bizdelnick » 22.07.2014 17:41

В чём именно отличие?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 22.07.2014 18:55

Bizdelnick писал(а):
22.07.2014 17:41
В чём именно отличие?

Сори виноват!!!
Уже разобрался. ТО, ЧТО НАДО.


Bizdelnick писал(а):
22.07.2014 17:41
Можно задать шаблон, соответствующий всем нужным вариантам

Я сначала перечитал все мануалы которые нашел, потом подбирал варианты:
Spoiler

Код: Выделить всё

:g/123/|/321/d;

Код: Выделить всё

:g/123/:/321/d;

Код: Выделить всё

:g/123/,/321/d

Код: Выделить всё

:g/123/./321/d...


Bizdelnick писал(а):
22.07.2014 17:41
учите регулярные выражения.

Spoiler
Мне нужен сайт под то что я выдумал, решил посмотреть, что такое php, MySQL, html, css, js. И сейчас стою в начале пути и понимаю объем всего, что необходимо выучить и просто ужасаюсь и даже не знаю с чего начать...
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 02.08.2014 21:56

Bizdelnick писал(а):
22.07.2014 10:36
... учите регулярные выражения.

Доброго времени суток Bizdelnick!!!
Чем больше пользуюсь vim тем четче понимаю, что регулярные выражения значительно бы упростили "жизнь" с vim. Прочел пару статей, есть общее представление, что к чему, но общий смысл (принцип) пока не понял. Вообщем как дохожу до практики, понимаю, что статьи слишком абстрактны.
Bizdelnick, Вы не подскажите, с чего начать, как Вы их начинали учить?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тонкая настройка vim

Сообщение Bizdelnick » 02.08.2014 22:56

DONBASS писал(а):
02.08.2014 21:56
Вы не подскажите, с чего начать, как Вы их начинали учить?

Как я начал - не советую. (-:
Народ хвалит книжку Фридла.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Тонкая настройка vim

Сообщение drBatty » 02.08.2014 23:27

DONBASS писал(а):
02.08.2014 21:56
как Вы их начинали учить?

надо просто ими пользоваться. Это тоже язык программирования, хоть и не тьюринг-полный.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 03.08.2014 03:01

Bizdelnick писал(а):
02.08.2014 22:56
DONBASS писал(а):
02.08.2014 21:56
Вы не подскажите, с чего начать, как Вы их начинали учить?

Как я начал - не советую. (-:

Похоже именно так я уже и начал...

Bizdelnick писал(а):
02.08.2014 22:56
Народ хвалит книжку Фридла.

Спасибо, скачал!



drBatty писал(а):
02.08.2014 23:27
DONBASS писал(а):
02.08.2014 21:56
как Вы их начинали учить?

надо просто ими пользоваться. Это тоже язык программирования, хоть и не тьюринг-полный.


Доброго времени суток, Bizdelnick, drBatty!!!
Так пока еще не одного регуляного выражения не получилось написать...
Нашел на YouTube огромный курс по этой теме (правда только что) посмотрел первый урок там был такой пример:
Spoiler
https://yadi.sk/i/O7gC-3OQYw5iU - yandex сжал видео, качество было лучше

попробовал повторить все тоже самое в vim, а не в программе как по уроку и ни чего не вышло?

Код: Выделить всё

[^"]+("[^"]+").*/g

Это что у vim свои регулярные выражения?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тонкая настройка vim

Сообщение Bizdelnick » 03.08.2014 13:39

DONBASS писал(а):
03.08.2014 03:01
Нашел на YouTube огромный курс

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

DONBASS писал(а):
03.08.2014 03:01
попробовал повторить все тоже самое в vim, а не в программе как по уроку и ни чего не вышло?

Есть много разновидностей регулярных выражений. Наиболее распространённые - "классичекие" как в UNIX (используются в vim с набором расширений, а также в sed и grep по умолчанию), расширенные, Perl-совместимые. То, что Вы привели, это либо расширенный синтаксиксис, либо Perl-совместимый (ну или ещё какой-нибудь вроде RE2). Чтобы это заработало в vim, надо экранировать + и круглые скобки.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 03.08.2014 23:26

Bizdelnick писал(а):
03.08.2014 13:39
Никогда не понимал, как можно учиться консольным программам и программированию по видеоурокам.

Идея пришла вчера во время написания поста.
Что мне остается делать? Это тоже способ, почему бы и нет, к тому же в той части, что я прислал, в самом начале рекомендовали литературу к прочтению в том числе и Фридла и много интернет ресурсов узнал из этого видео:
Spoiler
https://www.youtube.com/watch?v=DNM29SmAZRM&feature=youtu.be&t=10m21s


Spoiler
https://www.youtube.com/watch?v=YywHNVLkIJs&index=3&list=PLhe16itim17eXGrQzmYh9k1yHf042qfoq

А чем плох для начинающего, этот урок?
Bizdelnick писал(а):
03.08.2014 13:39
Чтобы это заработало в vim, надо экранировать + и круглые скобки.

Каким образом?

Код: Выделить всё

([^"]+("[^"]+").*)/g

Я знают что такое экранировать, но я хотелбы понять в каком случае как это расставить. Пока, не по прочитанному, не получается не по увиденному.
Материала дали много пошел разбираться.
Спасибо сказали:

liaonau
Сообщения: 390
ОС: gentoo

Re: Тонкая настройка vim

Сообщение liaonau » 03.08.2014 23:53

Код: Выделить всё

[^"]\+\("[^"]\+"\).*/g
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 04.08.2014 00:55

liaonau писал(а):
03.08.2014 23:53

Код: Выделить всё

[^"]\+\("[^"]\+"\).*/g

Доброго времени суток, liaonau!!!
Этот код прилогался к этому видео:
Spoiler
https://yadi.sk/i/O7gC-3OQYw5iU

Не сработал?
Путем долгих переборов и поисков в google получилось частично, вот этим кодом:

Код: Выделить всё

:%s/<.\{-}>//g

И то, не полностью как в условии...

Лед тронулся:
Написал осмысленное первое регулярное выражение и выполнил задание.
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Тонкая настройка vim

Сообщение drBatty » 04.08.2014 04:02

DONBASS писал(а):
03.08.2014 23:26
узнал из этого видео

интересно: как вам не лень набирать с экрана в терминал? Мне проще мышкой скопировать строчку/команду/код.

ЗЫЖ в моей книжке(в подписи ссылка была) имелись рабочие примеры.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 04.08.2014 12:35

drBatty писал(а):
04.08.2014 04:02
интересно: как вам не лень набирать с экрана в терминал? Мне проще мышкой скопировать строчку/команду/код.

Я владею "слепым" методом набора. На английском правда не так быстро, как на русском.
drBatty писал(а):
04.08.2014 04:02
ЗЫЖ в моей книжке(в подписи ссылка была) имелись рабочие примеры.

Спасибо, посмотрю, это может пригодиться.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 15620
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Тонкая настройка vim

Сообщение Bizdelnick » 04.08.2014 12:50

DONBASS писал(а):
03.08.2014 23:26
Каким образом?

Обратной косой чертой.
[^"]\+\("[^"]\+"\).*
Другой вариант - вместо [^"]\+ писать [^"][^"]* - это более переносимый вариант, не завязанный на расширения, специфичные для vim и GNU.

P. S. Лично у меня нет ни времени, ни желания смотреть видео. Поясняйте, пожалуйста, текстом, какого эффекта хотите добиться. Тем более, если уж слепой печатью владеете, Вам это несложно. (-:
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

DONBASS
Сообщения: 48
ОС: macOS

Re: Тонкая настройка vim

Сообщение DONBASS » 06.08.2014 01:40

'd\' в vim совсем не то же самое что и [0-9].
или я как-то не правильно использую 'd\' ?
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 4843
ОС: Gentoo

Re: Тонкая настройка vim

Сообщение /dev/random » 06.08.2014 06:24

DONBASS писал(а):
06.08.2014 01:40
'd\' в vim совсем не то же самое что и [0-9].
или я как-то не правильно использую 'd\' ?

"\d", а не "d\"
Спасибо сказали: