Меню Рубрики

Vim mac os terminal

Vim mac os terminal

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

Графическая версия

Windows: Нажмите Start → Programs → Vim 7 → gVim .

Mac OS X: Нажмите Finder → Applications → MacVim .

Linux/BSD: Нажмите Applications → Accessories → GVim Text Editor , или нажмите Alt+F2 , наберите gvim и нажмите клавишу enter .

Терминальная версия

Windows: Нажмите Start → Run , наберите vim и нажмите клавишу enter .

Mac OS X: Нажмите Finder → Applications → Utilities → Terminal , наберите vim и нажмите клавишу enter .

Linux/BSD: Нажмите Applications → Accessories → Terminal , или нажмите Alt+F2 , наберите konsole/gnome-terminal и нажмите клавишу enter . Затем, наберите vim и нажмите клавишу enter .

Отныне, когда мы говорим «открытыть Vim», воспользуйтесь одним из методов, упомянутых выше.

Примечание: Когда вы запустите Vim, вы увидите, что вы не можете сразу начать печатать текст. Не паникуйте, все будет объяснено через некоторое время.

Графическая или терминальная?

Графическая версия Vim имеет меню в верхней части приложения, а также различные опции, доступные с помощью мыши, но учтите, что это совершенно необязательно. Вы можете получить доступ ко всем функциям Vim только с помощью клавиатуры.

Почему это важно? Потому что работа человека будет намного эффективна, если использовать только клавиатуру, чем при использовании мыши, в этом случае человек гораздо быстрее набирает текст и делает меньше ошибок.

Это происходит потому, что нет лишних движений руки, необходимых для переключения между клавиатурой и мышью, и нет переключения контекста в сознании человека при переносе руки между клавиатурой и мышью. Нужно взять за привычку использовать клавиатуру как можно больше, Вы экономите ценное движения руки.

Конечно, это субъективно. Некоторые люди предпочитают мышь, а некоторые предпочитают клавиатуру. Я рекомендую вам использовать клавиатуру как можно больше, чтобы узнать реальную мощь Vim.

Введение в режимы

Представьте себе, что в субботу вечером вы устали от телепрограмм. Вы хотите посмотреть старый любимый фильм. Вы переключаете телевизор в режим видео так, чтобы он показывал то, что отображает DVD-плеер, вместо кабельных каналов. Обратите внимание, что телевидение по-прежнему транслирует видео, но вы переключаете контекст на просмотр DVD или на транслируемые телепередачи.

Аналогично, Vim имеет режимы. Например, Vim имеет режим для ввода текста, режим выполнения команд и т.д. Все они связаны основной целью редактирования текста, но вы переключаете контекст в зависимости от того, нужно просто набрать текст, или вы хотите выполнить некоторые команды над текстом.

Разве это не просто?

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

Так почему же в Vim есть режимы? Чтобы сделать все как можно проще, даже если их использование может на первый взгляд показаться «странным».

Что я подразумеваю под этим? Давайте возьмем пример: одна из ключевых целей в Vim — делать все с клавиатуры, чтобы не нужно было использовать мышь (вы можете использовать мышь, если вы хотите, но это строго по желанию). В таком случае, как бы вы различали текст, который вы хотите написать, и команды, которые вы хотите запустить?

Решение, предлагаемое в Vim , состоит в том, чтобы иметь «нормальный» режим, где вы можете выполнять команды, и режим «вставки», в котором вы просто вводите текст. Вы можете постоянно переключаться между двумя режимами.

Например, нажав i вы переключаете Vim в режим вставки, а нажатием вы переключаете Vim в нормальный режим.

Как это делают традиционные редакторы, как они отличают команды и ввод текста? С помощью графического меню и комбинаций клавиш. Проблема в том, что это решение не масштабируется.

Прежде всего, если у вас есть сотни команд, создание меню для каждой из этих команд будет безумным и запутанным. Во-вторых, настройка использования каждой из этих команд будет еще более трудным делом.

Давайте возьмем конкретный пример. Предположим, вы хотите заменить в документе все вхождения слова » from » на слово » to «. В традиционном редакторе, вы можете открыть меню, Правка -> Заменить (или использовать сочетание клавиш, типа Ctrl-R), а затем ввести слово » from » и слово » to «, а затем нажать на кнопку «Заменить». После проверки можно выбрать вариант «Заменить все». В Vim, вы просто выполните :%s/from/to/g в нормальном режиме. Команда :s является аналогом команды «заменить».

Посмотрите, не правда ли, просто?

Что делать, если вы теперь хотите запустить эту замену только в 10 первых строках текста и вы хотите иметь подтверждения да/нет для каждой замены? В традиционных текстовых редакторах, получить подтверждения да/нет легко, сняв флажок «Заменить все», но сначала, вы должны найти, что менять и затем с помощью мыши щелкнуть на опции (или использовать длинную последовательность клавиш клавиатуры). Но как вы укажете, что нужно заменить только в первых 10 строках? В Vim, вы можете просто запустить :0,10s/from/to/gc . Новая опция с (‘c’onfirmation), которую мы используем означает, что мы хотим подтверждение для каждой замены.

Разделение режимов на ввод (вставка) и командный (нормальный) делает Vim легким для нас, и простым при переключении режимов.

Обратите внимание, что первые шаги в использовании Vim кажутся немного «странными», немного «чудными», но как только вы попробуете его в действии, поймете что это имеет смысл. Самое приятное то, что эти основные концепции помогут вам понять все, что вам нужно знать о том, как использовать Vim.

Теперь вы понимаете разницу между обычным режимом и режимом вставки. Работая в нормальном режиме вы можете использовать различные команды, и вы можете сразу начать использовать их. Сравните это с изучением новых команд в традиционных редакторах, где сперва нужно прочесть множество документации, много искать по меню методом проб и ошибок, или просто просить кого-то помочь.

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

Примечание: Все команды в нормальном режиме должны заканчиваться клавишей enter , чтобы сказать Vim, что мы написали полную команду. Так что когда мы говорим «выполните команду :help vim-modes-intro » , это означает, что вы должны ввести :help vim-modes-intro , а затем нажать клавишу enter для завершения команды.

Запись в файл

Давайте теперь посмотрим, как открыть, отредактировать и закрыть файл в Vim.

2. Наберем :edit hello.txt и нажмем enter .

4. Введем текст Hello World .

6. Наберем :write и нажмем клавишу enter .

7. Закроем Vim, запустив :q .

Поздравляю! Вы создали свой первый файл :-).

Много пришлось сделать операций?

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

Давайте посмотрим, что делают вышеперечисленные команды.

:edit hello.txt или просто :e hello.txt — открывает файл для редактирования. Если файл с указанным именем не существует, то Vim создаст его при сохранении файла.

Нажатие i — переключает Vim в режим вставки.

Набор текста Hello World — ввод нужного вам текста в файл.

Нажатие — возвращает Vim в нормальный режим

:write или просто :w — говорит Vim, что нужно записать текст (который пока сохранен в памяти компьютера) в файл на жесткий диск. Это означает, что все, что мы написали, будет теперь храниться постоянно.

:quit или просто :q — закрыть файл в текущем окне. Если это было единственное открытое окно в Vim, это также приведет к закрытию Vim (Концепция окон будет обсуждаться в следующей главе).

Попробуйте повторить этот процесс несколько раз с разными именами файлов, другим текстом, и т.д., пока вы не привыкнете к базовым действиям в использовании Vim.

Обратите внимание, что когда вы находитесь в режиме вставки, Vim показывает — INSERT — в нижнем левом углу. При переключении в нормальный режим, он ничего не показывает. Это потому, что нормальный режим является режимом по умолчанию, в котором работает Vim.

Потратьте некоторое время, чтобы отдохнуть от полученной информации, это, пожалуй, самый тяжелый урок, который нужно узнать о Vim, остальное все просто:)

И не волнуйтесь, помощь не слишком далеко. На самом деле, просто запустите команду :help . Например, выполните :help :edit , и вы увидите открытую документацию. Идем дальше, пробуйте.

И тоги

Мы уже обсудили основные понятия и использование Vim. См. :help notation и еще : help keycode .

Убедитесь, что вы досконально поняли эту концепцию. Как только вы начнете «думать в Vim«, остальные функции Vim будут очень простыми.

Источник

Pasting code into terminal window into vim on Mac OS X

When I paste code into my Mac OS X terminal window into vim it indents each line. For each line it adds an indent so the text looks like this.

My current workaround is I paste the text first into textmate text editor which keeps the correct formatting. Then I save that file and open it up in vim. Then I use vim yank to paste it.
Is there a setting in my .vimrc that could change this behavior? Or is this a terminal issue?

6 Answers 6

Put Vim in Paste mode. This is useful if you want to cut or copy some text from one window and paste it in Vim. This will avoid unexpected effects.

UPDATE: Vim 8 includes native support for Bracketed Paste Mode. It is enabled by default. See Vim’s xterm-bracketed-paste help topic. Users no longer need to do anything to configure Vim to support this.

As of Mac OS X Lion 10.7, Terminal supports “bracketed paste mode,” which enables the terminal emulator to tell the program connected to the tty when the user pastes text, so that the program won’t interpret it as editing commands. Programs that support it send the terminal an escape sequence to enable this mode, in which the terminal surrounds pasted text with a pair of escape sequences that identify the start and end.

To enable this in Vim, put the following code in your

This makes it so that when Vim switches the terminal to/from the alternate screen† (t_ti, t_te) it enables/disables bracketed paste mode (ESC [? 2004 h, ESC [? 2004 l). When it receives the escape sequence indicating the start of a paste (ESC [ 200

), it enables Paste mode (set paste) and switches to Insert mode if necessary («i»). When it receives the matching end-of-paste marker (ESC [ 201

) it disables Paste mode (pastetoggle) and remains in Insert mode. The cmap commands arrange for the Vim command line to ignore the escape sequences and accept the pasted text as-is.

Note that this only enables bracketed paste mode when the $TERM value starts with «xterm…»; if you’re setting $TERM to something else, you may want to revise that test to include your $TERM value. Or, you could omit the test altogether, since it isn’t strictly necessary—it’s just trying to be careful not to do something that might be incompatible with some other terminal type.

In Terminal, this works with all the various Paste commands, as well as drag-and-drop.

† The terminal has a main screen and an «alternate» screen. Each screen has its own contents and state. Text in the alternate screen does not scroll up into the scrollback log. It is typically used by programs that take over control of the whole screen and are therefore referred to as «full screen» programs. This includes vim, emacs, less and top, for example.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Viewnx 2 mac os
  • Viewer visio mac os
  • Video player для mac os
  • Video copilot optical flares mac os
  • Vidalia bridge bundle mac os