2013-03-20 3 views
0

Я хочу настроить мой .vimrc для автоматической проверки синтаксиса. Это моя проблема, я хочу, чтобы автоматическое изменение somes синтаксиса другим. Я рассматриваю конкретный символ в компьютерной программе, например =; ,. ({[<vim синтаксис проверки пробелов

Exemple это лучше, чем слова:.

void bibi(int param1,char *words) 
{ 
unsigned int locale=param; 
cout<<words<<endl; 
} 

стали:

void bibi(int param1,char* words) 
{ 
unsigned int locale = param; 
cout << words << endl; 
} 

Просто форматирование с добавить или удалить некоторые пробельные

Я пишу это:.

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
    " Formating of text in code 
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

    function! ChangeSpaces() 
    "" search and replace "= " or " =" or "= " to " = " 
    silent! %s/\s*[=]\s*/ = /g 
    endfunction 

    ""autocmd CursorMovedI * call ChangeSpaces() 
    ""autocmd BufWrite * call ChangeSpaces() 
    autocmd FileAppendPre * call ChangeSpaces() 

Но у меня нет результата в этом случае, если я пишу «i = e», они ничего не делают, но если я пишу 'i =', это работа, регулярное выражение не запускается, они заменяются после завершения шаблон".

Кстати, если у вас есть более «сексуальный способ» делать то, что я хочу, дайте мне знать. В самом деле, когда я хочу добавить некоторые другие специфические carácter код стал:

"function! ChangeSpaces() 
    "" search and replace "= " or " =" or "= " to " = " 
    "silent! %s/\s*[=]\s*/ = /g 

    """ search and replace "(" or " (" or "(" to " (" 
    ""  silent! %s/\s*[(]\s*/ (/g 
    """ search and replace "[ " or " [" or "[" to " [ " 
    ""  silent! %s/\s*[[]\s*/ [ /g 

    """ search and replace ", " or " ," or "," to " , " 
    ""  silent! %s/\s*[,]\s*/ , /g 

    """ search and replace "== " or " ==" or "==" to " == " 
    ""  silent! %s/\s*[==]\s*/ = /g 

    """ search and replace "> " or " >" or ">" to " > " 
    ""  silent! %s/\s*[>]\s*/ > /g 
    """ search and replace ">= " or " >=" or ">=" to " >= " 
    "  silent! %s/\s*[>=]\s*/ >= /g 

    """ search and replace "< " or " <" or "<" to " < " 
    ""  silent! %s/\s*[<]\s*/ < /g 
    """ search and replace "<= " or " <=" or "<=" to " <= " 
    ""  silent! %s/\s*[=]\s*/ <= /g 


    ""  let repl=substitute(cline,\s*[= ]\s*," = ", "g") 
    ""  call setline(".",repl) 
    ""  let cline=line(".") 
    ""  let ccol=col(".") 
    ""  call cursor(cline, ccol) 
    "endfunction 

    ""autocmd CursorMovedI * call ChangeSpaces() 
    ""autocmd BufWrite * call ChangeSpaces() 
    "autocmd FileAppendPre * call ChangeSpaces() 

С наилучшими пожеланиями.

PS: мой плохой, я хочу, чтобы этот вид формирования, для каждого используемого языка, а не только для C++.

ответ

1

Как насчет фильтрации файла через внешний индентор C++? Хотя отступ GNU говорит, что он не предназначен для C++, он работает достаточно хорошо. Если это не так, вы можете попробовать astyle. Тогда все, что вам нужно сделать, это

map <F8> :w<CR>m':%!astyle<CR>`' 

Таким образом, даже люди, использующие другие редакторы, могут использовать один и тот же стиль отступа.

+0

Спасибо за обмен, но я хочу, чтобы это форматирование не только для C++. И если это возможно, просто один редактор vim и некоторые плагины, не больше и больше программ. – Max

Смежные вопросы