Skip to content

Instantly share code, notes, and snippets.

@sagax
Last active February 2, 2019 19:00
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save sagax/05bfe4f84ea2297106d1a17981b14ecf to your computer and use it in GitHub Desktop.
Save sagax/05bfe4f84ea2297106d1a17981b14ecf to your computer and use it in GitHub Desktop.
vim article-1

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


Навигация:

  • ge - перейти к концу предыдущего слова

Замена текста:

  • :%s/old/new/gc - замена old на new с подтверждением
  • :4472,10400s/old/new/gc - поиск с заменой с указанием диапазона строк
  • :.,$s/old/new/gc - поиск с заменой начиная с текущей строки

Редактирование:

  • df) - удалить символы с текущего включая символ ) и не переходить в insert mode
  • dt) - удалить символы с текущего до символа ) и не перехоидить в insert mode
  • cf) - удалить символы с текущего включая символ ) и перейти в insert mode
  • ct) - удалить символы с текущего до символа ) и перейти в insert mode
  • diw - удалить текущее слово без перехода в insert mode
  • ciw - удалить текущее слово с переходом в insert mode
  • ci" - удалить данные между кавычками и перейти в insert mode
  • di" - удалить данные между кавычками и не переходить в insert mode
  • :g/^\s*$/d - удалить все пустые строки в текущем buffer
  • vi" - выделение текста внутри кавычек
  • J - «приклеить» следующую строку к концу текущей
  • gJ - «приклеить» следующую строку без пробела между текущей и следующей

Поиск:

  • /< the - искать слова, начинающееся на “the”
  • /the> - искать слова, заканчивающиеся на “the”
  • /<600> - искать по точному соответствию(находит только 600, игнорируя 60)
  • /<....> - искать слова из четырех символов
  • g* - поиск слова под курсором с любым вхождением вперед
  • g# - поиск слова под курсором с любым вхождением назад
  • n - после того, как сделан поиск, переход на следующее соответствие
  • N - после того, как сделан поиск, переход на предыдущее соответствие

Манипуляции с окнами:

  • C-w - | C-w + - горизонтальный ресайз сплит окна
  • C-w < | C-w > - вертикальный ресайз сплит окна
  • C-w = - сброс ресайза для сплит окон
  • 50C-w < - ускоренный ресайз сплит окна(повторит 50 раз)
  • C-w-K - переключить горизонтальный сплит в вертикальный
  • C-w-H - переключить горизонтальный сплит в вертикальный

Плагины:

junegunn/vim-easy-align

url: -

desc: -

  • gaip= or gaip*= - Выровнять блок по символу =
@spavlovich001
Copy link

  1. Vim set spell lang: setlocal spell spelllang=en
  2. Создать баш команду в вим: C-x-e
  3. Сделать первый символ заглавным: g1~
  4. Открыть файл с профилированием: vim -c 'profile start vim.log' -c 'profile func *' javascript.js
  5. Удалить символы с текущего включая символ ) и не переходить в insert mode: df)
  6. Удалить символы с текущего до символа ) и не перехоидить в insert mode: dt)
  7. Удалить символы с текущего включая символ ) и перейти в insert mode: cf)
  8. Удалить символы с текущего до символа ) и перейти в insert mode: ct)
  9. Включить table mode: \tm
  10. Закрыть split окно: C-w q
  11. Перейти на следующий split: C-w-w
  12. Выделение текста в кавычках: vi"
  13. Поиск слова с любым вхождением вперед: g*
  14. Поиск слова с любым вхождением назад: g#
  15. Вставить слово\строку в строку поиска(insert mode): C-r"
  16. Повторить 80 раз символ *: 80 a
  17. Сортировать список: :%!sort -M
  18. Открыть файл cp1251 и конвертировать его в utf8: :e ++enc=cp1251 и :w ++enc=utf-8 %
  19. Удалить данные между кавычками и перейти в insert mode: ci"
  20. Удалить данные между кавычками и не переходить в insert mode: di"
  21. Удалить слово на котором стоишь и перейти в insert mode: div
  22. Удалить слово на котором стоишь и перейти в insert mode: civ
  23. Перейти к концу предыдущего слова: ge
  24. Повтор поиска символа вперед: f
  25. Повтор поиска символа назад: F
  26. Открыть файл под курсором: gf
  27. Отменить последнюю отмену: C-T
  28. Открыть справку на слово, на котором стоит курсор: S-k
  29. Переформатировать строку т.е если set tw=80 и выполнить C-v + gq, то лишний текст отформатируется по ширине строки 80: gq
  30. Старт записи макросов: qq
  31. Остановить запись макроса: q
  32. Одиночный запуск макроса: @q
  33. Сто раз повторить выполнение макроса: 100@Q
  34. Горизонтальный ресайз сплит окна: C-w - | C-w +
  35. Вертикальный ресайз сплит окна: C-w < | C-w >
  36. Сброс ресайза для сплит окон: C-w =
  37. Ускоренный ресайз сплит окна: 50C-w < повторит 50 раз
  38. Когда сделали поиск, следующее соответствие: n
  39. Когда сделали поиск, предыдущее соответствие: N
  40. Open file a new window: f
  41. Open file a new tab: gf
  42. Профилирование с целью загрузки процессора плагинами: start: :profile start filename, потом: :profile func *, в конце замеров: :profdel *
  43. Вставить слово в search : нажать / и C-r C-w
  44. Ввод специальных символов: В insert mode нажимаем C-k, потом вводим символы специального символа. Посмотреть все символы можно :digraphs
  45. Замена с подтверждением с начала файла: :%s/some/some1/gc
  46. Поиск с заменой с указанием диапазона строк: 4472,10400s/*/¤/gc
  47. Поиск с заменой начиная с текущей строки: :.,$s/a1/a2/gc
  48. Find and edit in vim all fineded files: vim find . -iname '*.py'
  49. Run TaskWarior: :TW
  50. Vim: Switch from Horizontal split to Vertical split: ^W-l
  51. Посмотреть список done task: :!task completed
  52. Open omnicompetition menu: C-x C-o
  53. Print number of color: echom &t_Co
  54. Split and VSplit: C-w-s, C-w-v
  55. remove trailing space: :%s/\s+$//
  56. Delete all blank line: g/^\s*$/d
  57. Force set file indent: // vim:set foldmethod=marker:
  58. Read error messages: :messages
  59. Close buffer: :bdelete
  60. Show startup time: vim --startuptime vim.log
  61. search strong pattern: /<600>
  62. Print all key bind: :redir! > vim_keys.txt
    :silent verbose map
    <:redir END>
  63. Write log: vim -V20vimlog
  64. lvimrc with less: execute "nnoremap ,r :wall!:cd ". g:localvimrc_script_dir ." !clear;./test.py less"
  65. Set some option to file: " vim:set foldmethod=marker:
  66. Выровнять блок по =: gaip= or gaip*=
  67. Test colors: :runtime syntax/colortest.vim
  68. Комбинирование типов файлов: set ft=.
  69. Calculate: in insert mode C-r =5*7 enter
  70. Insert filename in insert mode: C-r%
  71. Delete last word in insert mode: C-w
  72. Scroll in insert mode: C-x C-e\y
  73. Who set some options: verbose set iskeyword?

@spavlovich001
Copy link

d} - удалить с текущей позиции курсора до конца параграфа

@spavlovich001
Copy link

Гитхоб съедает кое-что(96. Комбинирование типов файлов: set ft=.)
Выгрузил на paste еще раз: https://paste.debian.net/hidden/d631c5d3/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment