Почему vi ведет себя по-другому в Ubuntu, чем в CentOS?

Время сложностей было бы хуже, хотя. Хорошая реализация очереди делает все в постоянное время.

Редактировать

Не уверен, почему мой ответ был здесь опущен. Если мы программируем, мы заботимся о сложности времени, и использование двух стандартных стеков для создания очереди неэффективно. Это очень актуальный и актуальный момент. Если кто-то еще будет нуждаться в этом, мне было бы интересно узнать почему.

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

Вы можете реализовать очередь в виде односвязного списка (каждый элемент указывает на следующий вставленный элемент), сохраняя дополнительный указатель на последний вставленный элемент для толчков (или делая его циклическим списком). Реализация очереди и очереди для этой структуры данных очень проста в постоянном времени. Это наихудшее постоянное время, не амортизируется. И, как кажется, в комментариях просят дать такое пояснение, постоянное время в худшем случае строго лучше, чем амортизированное постоянное время.

32
задан Adam Plumb 2 July 2009 в 14:13
поделиться

5 ответов

В ubuntu установка vim по умолчанию происходит из пакета vim-tiny , но это еще не все.

Вы, вероятно, захотите:

apt-get install vim

или

apt-get install vim-full

Некоторые из ваших других проблем похожи на проблемы с клавишей Backspace и другими вещами. Как только вы получите полную версию vim, попробуйте добавить их в свой .vimrc:

set nocompatible

set t_kb=^H
fixdel

(ВАЖНОЕ ПРИМЕЧАНИЕ: ^ H - это буквальный символ ctrl-H, который вы получите, нажав Ctrl-V Ctrl-H во вставке режим)

39
ответ дан 27 November 2019 в 20:51
поделиться

I'll assume you mean VIM when you say VI? And at least, the 2nd point seems to be a console/terminal issue with VIM/term combo. The page below suggests some fixes, but none that I could make work (I use vim over putty to an Ubuntu dev box)

http://vim.wikia.com/wiki/Fix_broken_arrow_key_navigation_in_insert_mode

3rd point can be overwritten by using the following in your .vimrc

set backspace=indent,eol,start

1
ответ дан 27 November 2019 в 20:51
поделиться

(1) Проверьте, отличается ли параметр showmode на обоих.

(2) Не знаю об этом, я думаю, что это больше связано с терминалом, чем с самой Vi.

0
ответ дан 27 November 2019 в 20:51
поделиться

В CentOS vi - это псевдоним другой программы, vim, но в последних версиях Ubuntu vi означает просто vi, а не vim. Разницу вы увидите, если разницу между двумя разными программами, vi и vim.

Если вам нравится vim, просто запустите vim, а не vi. Это работает и в Ubuntu

0
ответ дан 27 November 2019 в 20:51
поделиться

В дополнение к установке vim-full, если у вас еще нет ~ / .vimrc :

$ cp /usr/share/vim/vimcurrent/vimrc_example.vim ~/.vimrc

Этот пример .vimrc уже выполняет самые важные настройки и является хорошим началом для настройки.

4
ответ дан 27 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: