Вы имеете в виду разрешение дисплея (например, 72 точки на дюйм) или размеры пикселей (в настоящее время окно браузера составляет 1000 x 800 пикселей)?
Разрешение экрана позволяет вам узнать, насколько толстой будет 10-пиксельная линия в дюймах. Размеры пикселей говорят вам, какой процент от доступной высоты экрана будет занимать горизонтальная линия шириной 10 пикселей.
Невозможно узнать разрешение дисплея только с Javascript, так как сам компьютер обычно не знает фактические размеры экрана, просто количество пикселей. 72 dpi - обычное предположение ....
Обратите внимание, что есть много путаницы в разрешении экрана, часто люди используют этот термин вместо разрешения пикселей, но эти два совершенно разные. См. Википедия
Конечно, вы также можете измерять разрешение в точках на см. Существует также неясная тема не квадратных точек. Но я отвлекся.
Мне бы очень хотелось знать, что вы можете использовать Ctrl kbd> C kbd> вместо Esc kbd> для выхода из режима вставки. Для меня это было настоящим повышением производительности.
Открытие нескольких файлов с помощью вкладок:
:tabe filepath
переход между открытыми файлами
gt and gT or :tabn and :tabp
Сохраните открытую сессию, чтобы вы могли вернуться к списку открытых файлов позже:
:mksession session_file_name.vim
Открыть созданный сеанс
vim -S session_file_name.vim
закрыть все файлы одновременно
:qa
Еще одна команда, которую я недавно узнал:
autocmd
Он позволяет вам запустить команду для события, чтобы вы могли, например, запустить команду make, когда вы сохраняете файл, используя что-то вроде:
:autocmd BufWritePost *.cpp :make
Я бы сказал, что одно из моих любимых - это поместить окно справки в новую вкладку:
:tab help <help_topic>
Это открывает справку в новой вкладке и, как кто-то, кто любит вкладки vim, это смехотворно полезен.
:b [any portion of a buffer name]
для переключения буферов. Так что если у вас есть два буфера: «somefile1.txt» и «someotherfile2.txt», вы можете переключиться на второй с помощью простого ":b 2.t<enter>"
. Он также поддерживает завершение табуляции, хотя и не обязательно.
Говоря о завершении вкладки, настройка :set wildmode=full wildmenu
также очень полезна. Он обеспечивает полное заполнение табуляции для командного режима, а также очень полезное меню в стиле ncurses для всех возможных совпадений при его использовании.
:% s, / search, / replace,
Вы можете использовать другие символы, кроме » / «, чтобы отделить шаблоны для замены. Таким образом, вам не нужно избегать косых черт путей к файлам.
cw
Изменить слово - удаляет слово под курсором и переводит вас в режим вставки для ввода нового слова. Конечно, это работает с другими клавишами перемещения, поэтому вы можете сделать что-то вроде c $ , чтобы перейти к концу строки.
f + символ
Находит следующее вхождение символа в текущей строке. Таким образом, вы можете сделать vft , чтобы выделить весь текст до следующей буквы «t» в текущей строке. Это еще одна клавиша перемещения, поэтому она работает и с другими командами.
Интерфейс с вкладками
Помимо разделенной Windows, вы также можете иметь вкладки Windows. В режиме выхода введите: tabnew. Вы можете открыть несколько вкладок, как это. Для перехода между вкладками введите tabn. Это переместится на следующую вкладку. Чтобы перейти к окну с вкладками, введите: tabn2, чтобы переместить вторую вкладку и т. Д.
Чтобы закрыть вкладку, введите: tabc или: tabclose или просто: закрыть.
Если вы находитесь в эмуляторе терминала (в основном это терминал в GUI), вы можете попробовать выполнить: set mouse = a. Как только это будет сделано, вы можете щелкнуть мышью внутри редактора. И это также поможет вам перемещаться между вкладками, щелкая, а также закрывая, нажимая кнопку закрытия с правой стороны.
Выровняйте свой код - Полный файл
Просто введите G = gg в режиме выхода.
Сложите код
Скажем, у вас есть функция, которая завершена. Вы хотите минимизировать (или свернуть) эту часть кода, чтобы освободить место и уменьшить беспорядок. Просто выберите код. Затем введите: fold.
Это свернет код. Если вы хотите расширить код, просто зайдите туда и введите zo. Чтобы снова сложить, введите zc.
Я удивлен, что никто не упомянул о поддержке окон в Vim. CTRL-W s
я использую почти каждый раз, когда открываю vim.
Я часто создаю функции для редактирования задач и сохраняю их в своем .vimrc, чтобы найти их снова. Например, чтение стека вызовов .Net, которые были преобразованы в одну строку:
function! FixCallStacks()
:%s;\[NLN\];\r;g
:%s;\[TAB\];\t;g
endfunction
Продолжая предложение xcramps, я не могу сказать вам, сколько раз я использовал:
:%!sort
для сортировки списка. элементов в файле.
Подробности:
:
Диапазон!
Команда
будет выполнить команду оболочки в указанном диапазоне строк. Диапазон обычно задается как начало ,
конец
Примеры:
1,3
указывает первые 3 строки
'a,'b
выбирает текст между закладкамиa
иb
.,$
выбирает весь документ (.
= первая строка;$
= последняя строка)
%
является ярлыком для.,$
и также выделяет весь документ.
Не стесняйтесь смешивать и сочетать номера, закладки, .
и $
.
: стена и: стена, чтобы закрыть все разделенные экраны
:Te[xplore]
Tab & amp; Исследуйте (делает вкладку перед генерацией окна браузера)
Используйте vim-bindings в командной строке в bash:
set -o vi
В других программах, использующих readline, нажмите control-alt-j, чтобы переключиться с emacs на привязки vim.
ma
move cursor down
:'a,.!program
Это займет весь текст между тем, где вы установите метку (ma) для текущей строки (.), Запустите ее через программу и замените содержимое отмеченной области результатами. Вы даже можете использовать его, чтобы просмотреть содержимое каталога (например), сделав пустую строку, а затем с курсором, сидящим на этой строке,
:.!ls
О, и вы можете установить такие метки для az (то есть ма), и
'a
переместит вас на позицию, которую вы пометили как «а».
/ ищет вперед, и? повторяет поиск в обратном направлении без необходимости пополнять схему поиска.
Отличный материал. vi сильно недооценен. Как только вы это освоите, вы больше не захотите использовать редакторы, поставляемые с IDE.
Я знаю, что это не совсем vim. Но я нахожу интеграцию cscope действительно хорошей, и она мне очень помогает при взломе ядра linux.
Ctrl- \ g, чтобы найти определение функции Ctrl- \ s, чтобы найти все применения функции / макроса / переменной.
д & л; буква > - записывает макрос.
и
@ < same-letter > - воспроизводит его.
Это, безусловно, самые полезные команды в vim, так как вы можете заставить компьютер выполнять за вас большую работу, и вам даже не нужно писать программу или что-то еще.
Самый последний трюк «вау», который я узнал, - это метод сложного поиска и замены. Довольно часто в прошлом у меня было действительно сложное регулярное выражение для замены, и оно не работало. Есть лучший способ:
:set incsearch " I have this in .vimrc
/my complicated regexp " Highlighted as you enter characters
:%s//replace with this/ " You don't have to type it again
«Уловка» здесь (из-за отсутствия лучшего слова) - это способ, которым вы можете использовать поиск для создания регулярного выражения (и «incsearch» выделяет его, как вы введите символы), а затем используйте пустой шаблон в подстановке: пустой шаблон по умолчанию соответствует последнему шаблону поиска.
Пример:
/blue\(\d\+\)
:%s//red\1/
Эквивалентно:
:%s/blue\(\d\+\)/red\1/
См .:
:help 'incsearch'
:help :substitute
Я создал эту ссылку моей наиболее часто используемой команды для моего друга. Надеюсь, что люди найдут что-то полезное:
select v
select row(s) SHIFT + v
select blocks (columns) CTRL + v
indent selected text >
unindent selected text <
list buffers :ls
open buffer :bN (N = buffer number)
print :hardcopy
open a file :e /path/to/file.txt
:e C:\Path\To\File.txt
sort selected rows :sort
search for word under cursor *
open file under cursor gf
(absolute path or relative)
format selected code =
select contents of entire file ggVG
convert selected text to uppercase U
convert selected text to lowercase u
invert case of selected text ~
convert tabs to spaces :retab
start recording a macro qX (X = key to assign macro to)
stop recording a macro q
playback macro @X (X = key macro was assigned to)
replay previously played macro * @@
auto-complete a word you are typing ** CTRL + n
bookmark current place in file mX (X = key to assign bookmark to)
jump to bookmark `X (X = key bookmark was assigned to
` = back tick/tilde key)
show all bookmarks :marks
delete a bookmark :delm X (X = key bookmark to delete)
delete all bookmarks :delm!
split screen horizontally :split
split screen vertically :vsplit
navigating split screens CTRL + w + j = move down a screen
CTRL + w + k = move up a screen
CTRL + w + h = move left a screen
CTRL + w + l = move right a screen
close all other split screens :only
* - As with other commands in vi, you can playback a macro any number of times.
The following command would playback the macro assigned to the key `w' 100
times: 100@w
** - Vim uses words that exist in your current buffer and any other buffer you
may have open for auto-complete suggestions.
gi переключается в режим вставки, перемещая курсор в то же положение, в котором он находился ранее.
:q!
Хотелось бы знать, что до того, как я впервые запустил vi
Установка подтверждения позволяет изящно выйти из vim с помощью : q . Вам не нужно использовать ZZ или другие мощные механизмы, которые слепо сохраняют или отбрасывают все изменения.
Я только что обнаружил это во время просмотра справки vim:
:help index
Это приведет вас к одной ( с возможностью поиска! ) странице со всеми командами для всех режимов.
Таким образом, если вы знаете, что команда, которую вы пытаетесь запомнить / запоминать, начинается с или включает определенное нажатие клавиши, вы можете найти ее и просмотреть все возможности. Или вы можете просто просмотреть интересующий вас режим, чтобы увидеть / изучить возможности редактирования.
Я не могу сосчитать, сколько раз я сделал :help CTRL-R
или что-то еще и получил только первое, что, конечно, никогда не будет тем, что вы хотите. Это намного лучше, чем: helpgrep IMO.
Редактировать
И в .vimrc он идет:
nnoremap <silent> <F1> :help normal-index<CR>
inoremap <silent> <F1> <C-O>:help insert-index<CR>
:help
по-прежнему возвращает вас на страницу F1 по умолчанию.
Вы можете использовать целый набор команд для изменения текста в скобках / скобках / кавычках / тегах. Очень полезно избегать необходимости искать начало и конец группы. Попробуйте ci(, ci{, ci<, ci", ci', ct
в зависимости от того, какой объект вы хотите изменить. И варианты ca(, ca{, ...
удаляют также квадратные / кавычки.
Легко запомнить: изменить внутри выражения в скобках / изменить выражение в скобках.
qx начнет запись нажатий клавиш. Вы можете выполнить практически любую задачу редактирования, и Vim запоминает ее. Нажмите q еще раз, когда закончите, и нажмите @x , чтобы повторить нажатия клавиш. Это отлично подходит для повторяющихся редактирований, которые слишком сложны, чтобы написать сопоставление. Вы можете иметь много записей, используя символ, отличный от x .
Звездочка * kbd> будет искать слово под курсором.
[ kbd> + Tab kbd> приведет вас к определению функции C, которая находится под вашим курсором. (хотя не всегда работает.)
В нашем магазине программного обеспечения необходимо сортировать объявления переменных. На языке, который мы используем, несколько переменных могут появляться в одной строке.
new var1,var2,var3,etc
Это реальная боль, чтобы пройти и визуально попытаться отсортировать каждую переменную. Подсветка блока и команда сортировки в Vim - мои друзья здесь:
Это будет работать, только если в базовой системе существует команда 'sort'.
Для навязчивой конфигурации vim посмотрите на https://github.com/jmcantrell/dotfiles-vim
.Некоторые из моих последних дополнений к моему мозговому хранилищу VIm:
^wi
: Перейти к тегу под курсором, разбив окно. cib/ciB
: изменить текст внутри текущего набора скобок () или фигурных скобок {} соответственно. :set listchars=tab:>-,trail:_ list
: Показать вкладки / пробелы, визуально отличающиеся от других пробелов. Очень помогает с кодированием Python.