Почему энергия возвратила бы ненулевой код выхода, если я сразу выхожу после открытия?

Я работал в Unix приблизительно с 1987 (BSD, SunOS, Солярис, IRIX, Unicos, Linux) в нескольких местах по всей стране (США) и почти всегда слышал "-" символ, названный тире. Я сам обычно говорю тире. Одно исключение - когда высказывание "уничтожает-9": я только услышал, что как "уничтожают минус 9". Я не знаю, почему это было похоже на это, но это было моим опытом. Я также заметил, что различные регионы действительно имеют отчетливо другой малопонятный жаргон для некоторых технических вещей. Это вызвало горе (мысль, глупая, потому что не знают то, что что-то (самостоятельно, а также другие) и большой смех. - Вообще говоря меньше слогов обычно требует, чтобы меньше познавательной обработки достигло понимания. Это может перевести в большее количество работы за меньшее время - но это - вероятно, переход в другую кучу проблем.

15
10.06.2011, 14:00
4 ответа

Вы имеете filetype off в Вашем vimrc? Попытайтесь заменить его:

filetype on
filetype off

У меня была эта проблема с помощью Патогена Папы Римского Tim на OS X. Эта статья помогла мне решить проблему. Если Вы используете Патоген...

call pathogen#runtime_append_all_bundles()

... сделайте это вместо этого:

filetype on
filetype off
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
filetype plugin indent on

http://andrewho.co.uk/weblog/vim-pathogen-with-mutt-and-git

14
27.01.2020, 19:49
  • 1
    Это - положительная сторона. Я уже устранил эту конкретную проблему, но это - то, что привело меня подозревать, что я случайно зафиксировал ошибку где-то в другом месте в моем .vimrc. –  Hank Gay 13.07.2011, 18:26
  • 2
    Это устранило идентичную проблему для меня кроме с Vundle, а не Pathogen. –  Jonah Braun 13.02.2013, 02:35
  • 3
    Точно так же, как для добавления еще +1 это - старая фиксация, но она просто работала на меня устраняющий это использование задач Vundle в системе OSX. Просто бросил filetype on выше существующего filetype off. –  Mikey T.K. 14.09.2015, 18:50

Я могу думать о двух возможных объяснениях.

  1. vim на самом деле псевдоним. Отметьте это which не показывает псевдонимы, необходимо использовать type вместо этого (если Вы не выполняете csh или tcsh).

  2. Vim идет для поиска некоторого файла в пути относительно его каталога установки, на который он определяет от взгляда argv[0] (название исполняемого файла, как передано от оболочки), и так или иначе не удается найти, что путь, если это называют через относительный путь. Это было бы технически возможно, но я не думаю, что Vim на самом деле делает это.

8
27.01.2020, 19:49

Я получаю ненулевой код выхода от просто рабочей энергии и затем выхода.

Этого не происходит здесь с аналогичной системой: Snow Leopard и версия запаса Vim.

Попробуйте эту команду:

$ sudo dtruss vim +q

Это получит Вас, список всего syscalls Vim делает, в то время как он инициализирует и затем сразу закрывается. (dtruss эквивалентно strace на Linux, если Вы использовали это прежде.)

То, что Вы ищете, является строкой близко к концу, который показывает код ошибки, обычно-1. Рассмотрение аргументов системному вызову должно привести Вас к проблеме. Одна высокая возможность вероятности является недостающим файлом, который, вероятно, обнаружится на open() звонить.

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

7
27.01.2020, 19:49
  • 1
    Извините - я нахожусь на своей машине работы теперь, и она не имеет этого поведения. Я, несомненно, проверю его, после того как я нахожусь на своей домашней машине снова, все же. –  Hank Gay 06.06.2011, 23:10
  • 2
    Если Вы не можете понять это, добавьте dtruss вывод к Вашему вопросу. (Или по крайней мере, последние 25 строк или около этого.), Что непостижимо Вам, может привести другого к правильному ответу. –  Warren Young 08.06.2011, 01:12
  • 3
    @nlucaroni: Довольный услышать его. Для потомства, тем не менее, которое из этих двух идей в моем ответе зафиксировало его? Таким образом, сделал у Вас есть проблема разрешения это sudo "фиксированный", сообщая Вас должен был выполнить Полномочия Восстановления? Или это было скорее это dtruss показал Вам syscall ошибку, и если так, который и почему он перестал работать? –  Warren Young 13.02.2013, 14:57
  • 4
    syscall во вводных файлах, которые не были там. Мой коллега только что взял кого-то elses zipp'd .vim каталог и .vimrc, и вещи имели полные пути и недостающие файлы от неиспользованных плагинов. "версия" –  nlucaroni 13.02.2013, 22:02

Я поразил эту проблему кодов возврата. Я проследил его до тихого выполнения loadview команда в моем vimrc, который обеспечивает персистентные представления:

" Persistent views
if has("mksession")
    set viewdir=$HOME/.vimviews
    if has("unix")
        silent execute '!mkdir -p $HOME/.vimviews'
    endif
    au BufWinLeave * silent! mkview "make vim save view (state) (folds, cursor, etc)
    au BufWinEnter * silent! loadview "make vim load view (state) (folds, cursor, etc)
endif

При вводе буфера без имени файла, silent! loadview выполнился бы, скрыв ошибку

E32: Никакое имя файла

который также заставил код возврата быть установленным на один.

2
27.01.2020, 19:49

Теги

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