Инструменты пользователя

Инструменты сайта


public:pavel:develop:vim

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
public:pavel:develop:vim [2015/02/16 09:08] – [Плагины] pavelpublic:pavel:develop:vim [2025/09/11 01:17] (текущий) – внешнее изменение 127.0.0.1
Строка 2: Строка 2:
  
 ===== Плагины ===== ===== Плагины =====
 +
 +**[[http://vimawesome.com/|Каталог плагинов]]**
  
   - [[https://github.com/mozilla/doctorjs|DoctorJS]] - предоставляет jsctags, необходимо поставить патч для совместимости с nodejs-0.10 ([[https://github.com/mozilla/doctorjs/pull/54|подробности]])   - [[https://github.com/mozilla/doctorjs|DoctorJS]] - предоставляет jsctags, необходимо поставить патч для совместимости с nodejs-0.10 ([[https://github.com/mozilla/doctorjs/pull/54|подробности]])
Строка 10: Строка 12:
     - [[https://github.com/joonty/vim-phpqa|Валидатор кода для php]]     - [[https://github.com/joonty/vim-phpqa|Валидатор кода для php]]
   - [[https://github.com/ciaranm/detectindent|DetectIndent]] --- плагин для автоматического определения стилей отступов в файлах (expandtab, tabstop, shiftwidth) [[#определение_стиля_отступов|подробности]]   - [[https://github.com/ciaranm/detectindent|DetectIndent]] --- плагин для автоматического определения стилей отступов в файлах (expandtab, tabstop, shiftwidth) [[#определение_стиля_отступов|подробности]]
-  - [[https://github.com/xolox/vim-shell|vim-shell]] --- плагин для выполнения внешних команд  [[#|подробности]] +  - [[https://github.com/xolox/vim-shell|vim-shell]] --- плагин для выполнения внешних команд  [[#фоновое_выполнение_команд|подробности]] 
 +  - [[https://github.com/amiorin/vim-project|vim-project]] --- плагин для работы с проектами. Предоставляет стартовый экран, выполнение функций при открытии проектов (например, догрузку vim-скрипта для проекта) 
 +  - [[https://github.com/mhinz/vim-startify|vim-startify]] --- ещё один стартовый экран (закладки, сессии и т.п.) 
 +  - [[https://github.com/jiangmiao/auto-pairs|Auto Pairs]] --- автоматическая вставка парных символов (скобки, кавычки и т.п.) 
 +  - [[https://ctags.io/|Universal Tags]] --- продолжение ctags ([[https://github.com/universal-ctags/ctags|github]])
 ===== JavaScript IDE ===== ===== JavaScript IDE =====
  
Строка 116: Строка 121:
  
 <code vim> <code vim>
-/* vim: set noet ts=4 sw=4 */+/* vim: set noet ts=4 sw=4: */ 
 +</code> 
 + 
 +или: 
 + 
 +<code vim> 
 +/* ex:ts=4:sw=4:noet:foldmethod=marker */
 </code> </code>
  
Строка 146: Строка 157:
 autocmd BufWritePost *.js  call xolox#misc#os#exec({'command': './update-client-doc.sh', 'async':1}) autocmd BufWritePost *.js  call xolox#misc#os#exec({'command': './update-client-doc.sh', 'async':1})
 autocmd BufWritePost *.php call xolox#misc#os#exec({'command': './update-server-doc.sh', 'async':1}) autocmd BufWritePost *.php call xolox#misc#os#exec({'command': './update-server-doc.sh', 'async':1})
 +</code>
 +
 +==== Загрузка скриптов vim-а с проверкой существования файла ====
 +
 +Использую для загрузки вспомогательного конфига с перечнем проектов
 +
 +<code vim>
 +if filereadable(expand("~/.vimrc.projects"))
 +    so ~/.vimrc.projects
 +endif
 +</code>
 +
 +==== Регулярные выражения ====
 +
 +=== Начало текста в строках ===
 +
 +Допустим, есть текст:
 +
 +<code>
 +aaa
 +   bbb
 +ccc
 +     ddd
 +</code>
 +
 +Хотим получить:
 +
 +<code>
 +ggg.aaa
 +   ggg.bbb
 +ggg.ccc
 +      ggg.ddd
 +</code>
 +
 +Варианты решения:
 +
 +<code>
 +:%s/\v(\s|^)@<=(\w)@=/ggg./
 +:%s/\v</ggg./
 +</code>
 +
 +==== Сортировка строчек ====
 +
 +Запись всех строчек файла в обратном порядке. Можно сделать с помощью команды "tac":
 +
 +<code vim>
 +:.!tac %
 +</code>
 +===== Основы =====
 +
 +==== Copy&paste ====
 +
 +  - Выделяем текст для копирования
 +  - Нажимаем на клавишу ''d'' чтобы вырезать или ''y'' чтобы скопировать
 +  - Перемещаемся на место вставки
 +  - Нажимаем на клавишу ''p'' (после курсора) или ''P'' (до курсора)
 +
 +Чтобы обратиться к какому-то конкретному регистру надо жать ''<nowiki>"<register></nowiki>'', где вместо ''<nowiki><register></nowiki>'' можно указывать цифру или букву. Так будет выглядеть копирование и вставка через регистр ''a'':
 +
 +  * ''<nowiki>"ay</nowiki>'' --- копирование в регистр ''a''
 +  * ''<nowiki>"ap</nowiki>'' --- вставка из регистра ''a''
 +
 +В качестве системного буфера обмена выступает регистр ''+''
 +
 +Чтобы вставить в командную строку vim-а надо нажимать ''<nowiki><ctrl+r>"ap</nowiki>'', где ''<nowiki><ctrl+r></nowiki>'' --- позволяет выполнять команды в командной строке vim-а, затем пойдёт обычная команда из нормального режима, ''<nowiki>"a</nowiki>'' --- обращение к регистру //a//, ''p'' --- вставка.
 +
 +==== Макросы ====
 +
 +Начать запись макроса можно с помощью: ''q<register>'', где вместо ''<register>'' какая-нибудь буква или цифра. Например, ''qa'' --- начнёт запись макроса в регистр //a//. Теперь все выполняемые действия будут записаны в макрос. Чтобы прекратить запись надо в нормальном режиме нажать ''a''.
 +
 +Чтобы выполнить макрос жмём ''@<register>'', например ''@a'' --- выполнит макрос записанный в регистр //a//.
 +
 +===== Help =====
 +
 +Синтаксис поиска описания комбинаций клавиш: '':help i_CTRL-P'' --- где ''i'' - режим, ''CTRL-P'' - комбинация. Другой пример: '':help i_CTRL-X_CTRL_O''
 +
 +===== Neovim GUI =====
 +
 +<code javascript>
 +#!/usr/bin/env node
 +
 +var proc = require('child_process');
 +
 +var args = process.argv.concat([]);
 +args.splice( 0, 2 );
 +args.unshift( 'nvim' );
 +
 +var nvimCmd = args.join(' ');
 +
 +var termCmd = 'xfce4-terminal --command="' + nvimCmd + '"';
 +proc.execSync(termCmd);
 </code> </code>
  
public/pavel/develop/vim.1424077682.txt.gz · Последнее изменение: (внешнее изменение)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki