#1 21.02.2010 15:12:38

drag0n
Administrator
Зарегистрирован: 21.02.2010
Сообщений: 5
IP-адрес

Vi Improved

#2 23.02.2010 08:17:41

sogenius
Administrator
Зарегистрирован: 23.02.2010
Сообщений: 2
IP-адрес

Vi Improved

#3 23.02.2010 20:44:50

Aspedin
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 149
IP-адрес

Vi Improved

2 Полезные вещи
Выбор кодировки по F8

set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set wildmenu
set wcm=<Tab>
menu Encoding.CP1251   :e ++enc=cp1251<CR>
menu Encoding.CP866    :e ++enc=cp866<CR>
menu Encoding.KOI8-U   :e ++enc=koi8-u<CR>
menu Encoding.UTF-8    :e ++enc=utf-8<CR>
map <F8> :emenu Encoding.<TAB>


Показать/Скрыть нумерацию по ^n
imap <C-n> <Esc>:set<Space>nu!<CR>a
nmap <C-n> :set<Space>nu!<CR>

#4 08.03.2010 15:11:05

V0idExp
Administrator
Зарегистрирован: 06.03.2010
Сообщений: 51
IP-адрес

Vi Improved

#5 22.04.2010 23:53:43

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

Редактор Vim позволяет настраивать отображение специальных символов. Для этого необходимо внести в конфигурационный файл ~/.vimrc следующие строки.


" установить режим отображения спец-символов
  set list
" установить спец-символы
  set listchars=eol:<символ_конца_строки>,tab:<начальный_символ_табуляции><последующие_символы_табуляции>,trail:<сивол_пробела_в_конце_строки>,nbsp:<символ_неразрывного_пробела>


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

Я использовал следующие значения:

- eol:↲ (21b2);
- tab:→→ (2192);
- trail:· (00b7);
- nbsp:↔ (2194).

Для того, чтобы иметь возможность вводить указанные мной выше символы Юникода необходимо в режиме вставки нажать Ctrl + v, затем u и затем ввести шестнадцатиричный код (я указал его в скобках).

Вот что в конечном итоге вышло.



Оригинал поста здесь.

#6 23.04.2010 00:35:59

Aspedin
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 149
IP-адрес

Vi Improved

Выбор подсветки синтаксиса по <F7>

set wildmenu
set wcm=<Tab>
menu Syntax.Pascal  :set syntax=pascal<CR>
menu Syntax.Ruby    :set syntax=ruby<CR>
menu Syntax.Vim    :set syntax=vim<CR>
menu Syntax.Bash    :set syntax=sh<CR>
map <F7> :emenu Syntax.<TAB>

Принцип ясен.

#7 25.12.2010 07:58:33

Чей_туфля?
Administrator
Зарегистрирован: 13.10.2010
Сообщений: 87
IP-адрес

Vi Improved

подскажите,а как настроить подсветку синтаксиса,автодополнение для С++ в консольном Виме,именно в консоле а не эмуляторе консоле?
установил одну тему, тема - хороша, но когда перехожу в консоль(ctr+alt +F1) - темы нет а есть какоето безобразие(серый фон и т.д.)
да и бог с ней,с этой темой,мне нужночтобы была подсветка и автодополнение

#8 25.12.2010 09:26:08

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Vi Improved

мне нужночтобы была подсветка и автодополнение

а сама консоль-то случаем не чёрно-белая?
что пишет env?
и попробуйте
[console]echo -e "\x1b[31;1mRED\x1b[32mGREEN\x1b[0m"[/console]
Да, ещё дайте ~/.vimrc, там часто стоит проверка терминала, и включение на монохром (при некоторых условиях).

#9 25.12.2010 09:34:35

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Vi Improved

да, а писать надо грамотно:

(пробел - следующее слово с ошибкой, интер - варианты/добавить)

map    <Space>        ]s
map <Enter>        z=

if version >= 700
    "   По умолчанию проверка орфографии выключена.
    setlocal spell spelllang=
    setlocal nospell
    function ChangeSpellLang()
        if &spelllang =~ "en_us"
            setlocal spell spelllang=ru
            echo "spelllang: ru"
        elseif &spelllang =~ "ru"
            setlocal spell spelllang=
            setlocal nospell
            echo "spelllang: off"
        else
            setlocal spell spelllang=en_us
            echo "spelllang: en"
        endif
    endfunc

    " map spell on/off for English/Russian
    map  <S-F12> :call ChangeSpellLang()<CR>
endif

#10 25.12.2010 10:20:29

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Vi Improved

и автодополнение

что с автодополнением?
CTRL+N след. совпадение
CTRL+P прошлое совпадение

CTRL+X
F имя файла
L строка
D макрос
I текущий или вкл. файл
K слово из словаря
T слово из тезауруса
] таг
V командная строка Vim

У меня вообще как в MSVC - контекстное меню.

Что ещё нужно?

PS:
:h completion

#11 12.01.2011 11:42:15

BreatheInTheVoid
Administrator
Зарегистрирован: 02.05.2010
Сообщений: 35
IP-адрес

Vi Improved

Начал переезжать на vim. От непривычки нужна одна маленькая функция и я ее ни как не могу найти. Нужно прокручивать построчно текст ( как в шеле CTRL+SHIFT+UP(DOWN) ). Можно конечно прокручивать скроллом мыши, но это ж vim smile хочется клавиатурный аналог. Помогите найти, или написать скрипт, а то я еще не вникал в vimscript. буду благодарен.

#12 12.01.2011 11:56:59

i2ks
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 6 797
IP-адрес

Vi Improved

Начал переезжать на vim. От непривычки нужна одна маленькая функция и я ее ни как не могу найти. Нужно прокручивать построчно текст ( как в шеле CTRL+SHIFT+UP(DOWN) ). Можно конечно прокручивать скроллом мыши, но это ж vim smile хочется клавиатурный аналог. Помогите найти, или написать скрипт, а то я еще не вникал в vimscript. буду благодарен.


Прокрутка
^f Прокрутка экрана вперед на полное окно. Откры- вается новое окно с текстом, расположенным ниже текущего окна
^d Прокрутка текста вниз на пол-окна. Открываются строки, расположенные ниже текущего окна
^b Прокрутка экрана назад на полное окно. Откры- вается новое окно с текстом, расположенным выше текущего окна
^d Прокрутка текста вверх на пол-окна. Открываются строки, расположенные выше текущего окна

оно?

а так:
http://vimdoc.sourceforge.net/htmldoc/scroll.html
и
http://rsusu1.rnd.runnet.ru/unix/ucomm/vi.html

#13 12.01.2011 13:34:29

BreatheInTheVoid
Administrator
Зарегистрирован: 02.05.2010
Сообщений: 35
IP-адрес

Vi Improved

Нет, про это я знаю)) Нужна прокрутка окна на одну строку. Но спасибо за доки, с ними я придумал как легко написать плагин))

*edited

Даже плагин никакой не нужен, справился хоткеями. Для меня полезное дополнение к листаниям на экран и пол-экрана))
Может кому пригодится

" Single string scrolling
" Ctrl + j(Ctrl + Down) - One string down
" Ctrl + k(Ctrl + Up) - One string up
nmap <C-J> Lj
nmap <C-K> Hk
nmap <C-Down> Lj
nmap <C-Up> Hk


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

#14 19.01.2011 21:43:05

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

От непривычки нужна одна маленькая функция и я ее ни как не могу найти. Нужно прокручивать построчно текст ( как в шеле CTRL+SHIFT+UP(DOWN) ).


Ctrl + e
Ctrl + y

Это, нет?

#15 20.01.2011 07:04:26

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Vi Improved

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


как известно, в vim'е есть куча буферов обмена, a,b,c,d,e... Глобальный тоже есть, * (звёздочка). Вот только работает он далеко не всегда, зависит от того, с какими опциями собран VIM. Попробуйте. Если (как это часто бывает), звёздочка не работает, используйте файлы для обмена с другими редакторами.

Например mcedit умеет сохранять блок в файл ~/.mc/cedit/cooledit.clip командой C-Ins.

#16 27.02.2011 15:19:19

da Vinci
Administrator
Зарегистрирован: 15.02.2011
Сообщений: 30
IP-адрес

Vi Improved

Самые лучшие , из известных мне, vim ссылки на русском языке.
http://welinux.ru/post/4428/
http://jenyay.net/Programming/Tools

#17 12.04.2011 00:17:20

nima
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 97
IP-адрес

Vi Improved

#18 12.04.2011 05:20:07

drBatty
Administrator
Зарегистрирован: 20.02.2010
Сообщений: 17 053
IP-адрес

Vi Improved

вот текстовые файлы http://drbatty.ru/files/vim.rux/
надо скачать и читать в vim'е. Это русский перевод help'а.

PS: кодировка KOI8-R
++enc=koi8-r
ЕМНИП

#19 10.01.2014 10:26:50

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

не могу(не знаю как называется) найти в vim'е опцию
когда жмакаешь {
то автоматом через строчку появляется }
а посередине вставляется #code

то есть нажал {

и получается что то вроде

operator {
   #code
}


адд
inoremap { {}<Left>
inoremap {<CR> {<CR>}<Esc>O
inoremap {{ {
inoremap {} {}

#20 11.01.2014 13:39:28

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

возник вопрос.

как заставить vim применять подсветку синтаксиса сразу же после нажатия :w ?
ибо приходится делать выход и вход, напрягает.

в nano к примеру после нажатий Ctrl+o сразу разукрашивает

#21 11.01.2014 22:40:25

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

доброй ночи уважаемые.
тема скатывается и видимо умирает.
но вопрос про подсветку все еще открыт

#22 12.01.2014 05:14:13

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

moshell, здравствуйте.

По первому вашему вопросу. Для этих целей лучше использовать сниппеты. Работу со сниппетами обеспечивает плагин SnipMate. Установить его можно как вручную, так и с помощью менеджера плагинов для Vim. Последний вариант наиболее предпочтителен. Я настоятельно рекомендую использовать менеджер Vundle.

Вот два видеоролика об этих плагинах:

Vim Plugins: Vundle Package Management System

Vim Essential Plugin: SnipMate

Вот также пару статей о них:

Vundle. Менеджер плагинов для Vim

Продуктивная работа в vim с использованием snipMate

Второй ваш вопрос не совсем понятен. Подсветка синтаксиса включается следующей директивой:

[console]
syntax on
[/console]

После включения подсветки имеется возможность использования разных цветовых схем. Цветовая схема задается следующей командой `colorscheme {name}`*. Например:

[console]
colorscheme desert
[/console]

Для того, чтобы эти директивы работали при каждом запуске редактора необходимо включить их в файл `~/.vimrc`.
________
* Если хотите просмотреть все доступные цветовые схемы наберите в командной строке Vim'а `colorscheme ` (с пробелом в конце) и далее нажимайте клавишу Tab.

#23 12.01.2014 06:18:42

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

SamuelLinux, я благодарю Вас за столь развернутый ответ.
спасибо.

на первый свой вопрос я ответил еще в сообщении самого вопроса.

на данный момент меня интересует моментальная, молниеносная, реактивная (как еще бы написать?) подсветка синтаксиса.
syntax on
включен.
колор схема perl выбирается автоматом.
подсветка у меня работает.
но! не сразу.

если открывать старые скрипты (уже сохраненные), то подсветка есть.
если создавать новый скрипт, то чтобы появилась подсветка нужно выйти из vim и обратно зайти.
даже если сделать (сохранить)
:w
все равно не загорается, нужен выход-вход.


к примеру в редакторе nano создавая новый скрипт подсветка включается сразу после сохранения
Ctrl+o


вот я и не пойму. это нормальное поведение vim или это только у меня такая беда?

syntax on
" F11 - включить-выключить нумерацию строк
imap <F11> <Esc>:set<Space>nu!<CR>a
nmap <F11> :set<Space>nu!<CR>

"set autoindent " ai - включить автоотступы (копируется отступ предыдущей строки)
"set tabstop=4 " ширина табуляции
"set expandtab " преобразовать табуляцию в пробелы
"set smartindent " Умные отступы (например, автоотступ после {)

"НАСТРОЙКИ ОТСТУПА
set shiftwidth=4 " размер отступов (нажатие на << или >>)
set tabstop=4 " ширина табуляции
set softtabstop=4 " ширина 'мягкого' таба
set autoindent " ai - включить автоотступы (копируется отступ предыдущей строки)
set cindent " ci - отступы в стиле С
set expandtab " преобразовать табуляцию в пробелы
set smartindent " Умные отступы (например, автоотступ после {)
" Для указанных типов файлов отключает замену табов пробелами и меняет ширину отступа
au FileType crontab,fstab,make set noexpandtab tabstop=8 shiftwidth=8
set laststatus=2
"автозакрытие скобок
inoremap {      {}<Left>
inoremap {<CR>  {<CR>}<Esc>O
inoremap {{     {
inoremap {}     {}
"автодополение Ctrl+p
set completeopt=menuone,menu,longest,preview


//add
в vimrc у меня принудительно не выставлена colorscheme
она подтягивается автоматом, видимо на основе шабанг.
но почему после сохранения :w она не врубается?

//add принудительно дописал в vimrc цветовую схему. ничо не поменялос. опять нужен выход-вход

#24 12.01.2014 07:21:28

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

moshell, а вручную если включить?

Откройте Vim. Набросайте пару строк на Перле. В командной строке редактора введите:

[console]
:set filetype=perl
[/console]

#25 12.01.2014 07:26:38

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

Если сработает. В `~/.vimrc` добавьте:

[console]
" подсвечивать синтакс
syntax on

" использовать цветовую схему desert (одна из стандартных схем)
colorscheme desert

" после сохранения файлов с расширением *.pl автоматически применять подсветку для языка Perl
autocmd BufWrite *.pl set filetype=perl
[/console]

#26 12.01.2014 07:54:40

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

moshell, а вручную если включить?

Откройте Vim. Набросайте пару строк на Перле. В командной строке редактора введите:

[console]
:set filetype=perl
[/console]

ааа волшебник. лови плюс! спасибо
Если сработает. В `~/.vimrc` добавьте:

[console]
" подсвечивать синтакс
syntax on

" использовать цветовую схему desert (одна из стандартных схем)
colorscheme desert

" после сохранения файлов с расширением *.pl автоматически применять подсветку для языка Perl
autocmd BufWrite *.pl set filetype=perl
[/console]

енто не нужно. и так все ок)

#27 12.01.2014 08:40:35

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

SamuelLinux, нашел вот чего, может и вам пригодится.
функция сама определяет тип файла. по истечение ввода 20 символов.
то есть пишешь все одним цветом, когда вводишь 21й символ, сама разукрашивает

autocmd CursorMovedI * call CheckFileType()
function CheckFileType()
if exists("b:countCheck") == 0
let b:countCheck = 0
endif
let b:countCheck += 1
" Don't start detecting until approx. 20 chars.
if &filetype == "" && b:countCheck > 20
filetype detect
endif
endfunction

и уже на основе сиго раскрашивает как надо

#28 12.01.2014 11:27:38

SamuelLinux
Administrator
Зарегистрирован: 20.03.2010
Сообщений: 249
IP-адрес

Vi Improved

moshell, спасибо.

Можно так ещё:

[console]
" ~/.vimrc

" определять тип файла при бездействии в режиме редактирования (по умолчанию 4000 мс)
" (см. :help CursorHoldI)
autocmd CursorHoldI * filetype detect
[/console]

Замечу, что и ваш сценарий, и моё решение будет работать в том случае, если в начале файла присутствует либо „хэшбэнг“:

[console]
#! /usr/bin/perl

или даже

#! /usr/bin/env perl
[/console]

либо modeline (см. :help modeline):

[console]
# в любом месте файла, обычно в начале или в конце
# vim: set filetype=perl:
[/console]

Ещё замечу, что в теле функции, в вашем сценарии есть следующее условие:

[console]
if &filetype == "" && b:countCheck > 20
[/console]

То есть, если в `~/.vimrc` присутствует директива `filetype on`, сценарий, к сожалению, не сработает. У вас этой директивы там судя по всему нет и может быть поэтому у вас не включается подсветка синтаксиса при сохранении нового файла. Соответственно, чтобы всё работало, сценарий можно изменить так:

[console]
- if &filetype == "" && b:countCheck > 20
+ if b:countCheck > 20
[/console]

И последнее, как я уже сказал выше, один из вариантов срабатывания сценария — это использование modline в файле с исходным кодом. Так вот, если вы попытаетесь добавить modline после того, как наберёте > 20 символов (в конец файла, например), то при вводе директивы для Vim'а, редактор будет выдавать ошибки до тех пор, пока инструкция не будет дописана. То есть:



Таким образом, событие `CursorMovedI` — не самое подходящее в этом случае.

#29 12.01.2014 14:07:16

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

угу. только у меня после ввода 21го символа окраска сама происходит и без сохранения.
причем пробовал начинать писать bash и perl
разные окраски происходят.

#30 21.01.2014 12:52:55

moshell
Administrator
Зарегистрирован: 06.12.2011
Сообщений: 1 729
IP-адрес

Vi Improved

кто знает как называется сиё удобство?

при открытии файла чтобы vim кидал меня в то место, где я работал до выхода из редактора.
чтоб не искать.

Board footer