2015-01-30 3 views
1

Я сопоставляю ключ F8 в .vimrc, так что он создает + выполняет файл .cpp. Команда, которую я используюvim не приостанавливается после выполнения сопоставленной команды в .vimrc

map <F8> :w <CR> :!g++ -std=c++11 % -o %< && ./%< <CR> 

Проблема заключается в том, что после того, как я нажимаю F8, появляется выходной сигнал, но vim не ждет ENTER после отображения «нажмите ENTER для продолжения» (так в основном выход программы на короткое время появляется тогда сразу исчезает). Если я удалю <CR> сверху, тогда мне нужно вручную нажать ENTER после нажатия F8. Есть ли способ сделать vim ждать нажатия клавиши ENTER после выполнения отображаемой команды выше?

ответ

2

Похоже, у вас есть заднее пространство после <CR> в вашем отображении. Это подтвердит приглашение hit-enter.


Вы можете использовать плагины, как и мои ShowTrailingWhitespace plugin для обнаружения и DeleteTrailingWhitespace plugin к (автоматически) удалить конечные пробелы. (Страница плагин содержит ссылки на альтернативные плагинов.)


PS: You should use :noremap; он делает отображение неустойчивым к переназначению и рекурсии.

+0

большое спасибо! да, это была проблема, теперь поняли, что пространство ест входной буфер. – vsoftco

+0

Это довольно просто показать и удалить пробелы. Чтобы удалить его, просто выполните следующее: ':% s/\ s \ + $ // e'. И чтобы показать пробелы, просто сделайте следующее: ': set listchars + = tail: -' Я действительно не понимаю, зачем нужен плагин. – EvergreenTree

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