All streams
Search
Write a publication
Pull to refresh
4
0
Дмитрий Воробьев @dvor

Пользователь

Send message
Спасибо! Оказалось удобно работать с сессиями, теперь для каждого проекта можно создать свою (вместо cd some/path при каждом запуске). В startify есть их автосохранение:

let g:startify_session_persistence = 1


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

Однако, это весьма надуманный и специфичный пример. Есть очень много различных мощных инструментов, которые мало чем уступают друг другу. Каждому свое, дело вкуса. Я сам, в свое время, выбирал между вимом и емаксом — в пользу первого было лишь перемещение по тексту с помощью hjkl, вместо Ctrl+буква у второго.
Видео записывал при помощи Screenflick, инструкция по конвертации в gif тут.
Спасибо, не знал. В таком случае у ST есть шанс. :)

Так разговоры с компьютером не в ущерб результату. Все происходит на автомате, я набираю предыдущий пример за секунд 7. Я даже ни на секунду не задумываюсь — хотя, если задуматься, то можно увидеть красоту. А обычно я просто получаю результат — переместиться на пол-файла и заменить все внутри кавычек "" — мгновение, и все готово. Результат как раз получается максимально быстро, минимальным количеством нажатий клавиш и шевелением пальцами (вот если бы нужно было тянуться к мышке — нет, увольте, это в разы большие затраты энергии и времени).
Не холивара ради — ради демонстрации чудес. Огромное чудо в виме — это макросы. Это очень мощное средство, с помощью которого можно творить настоящую магию едва касаясь клавиатуры. Можно записать любую последоветельность нажатий клавиш, которую вим воспроизведет.

Небольшой пример (и немного Objective C).
gif
Есть весьма неоднородный код:

@propetry (strong, nonatomic) NSString *string;
@propetry NSUInteger someInt;
@propetry (weak, nonatomic) id <SomeDelegate> delegate;


Из которого мы хотим получить следующее:

    self.string = string;
    self.someInt = someInt;
    self.delegate = delegate;


«Множественное выделение» нас не спасет в этом случае. Однако, на помощь приходят макросы. Всего-то нужно набрать $bd0>>iself.<Esc>lyeea = <Esc>pj0 и потом воспроизвети макрос два раза 2@q.

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

$     (переместимся в конец строки)
b     (а теперь на одно слово назад)
d     (удаляем) 0 (все до начала строки)
>>    (сдвигаем код вправо)
i     (начинаем набирать текст)
self.
l     (двигаемся на один символ вправо)
ye    (копируем слово)
e     (теперь переходим в его конец)
a     (начинаем набирать текст)
 =·
p     (вставляем скопированное слово)
j     (переходим на следующую строку) 0 (и перемещаемся в ее начало)


А второе вхождение? А десятое? Для каждого – свой хоткей, что ли, учить?


Итого, я не пользуюсь хоткеями. Я говорю с компьютером. Мне не нужно учить для каждого действия свой хоткей. Я могу просто сказать n — «найди вхождение». И точно так же могу сказать 10n — «найди десятое вхождение». Если мне нужно перейти на начало строки, я говорю 0 — «начало строки». Если мне нужно удалить все до начала строки, я говорю d «удали» 0 «все до начала строки». Либо d «удали» b «предыдущее слово».

А теперь угадайте, что будет, если я захочу найти/скопировать/заменить/перевести в верхний регистр/… слово/абзац/содержимое кавычек, скобок/…
План такой:
1a. Дождаться не GPLv3 лицензии для toxcore (в процессе)
1б. Дождаться external testing от Эпл
2. Выложить бету в тестфлайт (смогут тестировать до 1000 пользователей)
3. Дождаться релиза toxcore, допилить все и опубликовать в аппсторе.

Information

Rating
Does not participate
Location
Haarlem, Noord-Holland, Нидерланды
Date of birth
Registered
Activity