2

Я telnet с использованием OpenVms и vim по умолчанию не было. Я должен портировать vim в OpenVms самостоятельно. У меня нет контроля над самой машиной.

Я скачал копию vim72 для OpenVms и разархивировал ее в каталог, а затем определил символ для ссылки на VIM.EXE.

TGSM_OPR> sh sym vim
  VIM == "$GSMACPTUSER:[USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72]VIM.EXE"

Я скопировал файл vimrc в каталог sys $ login и начал использовать vim.

Я обнаружил, что не могу использовать клавишу возврата, ни Ctrl+H не работают в некоторых сценариях. Если я начинаю новый документ, Backspace работает, и я могу Backspace, когда захочу. Однако, если я открою уже существующий файл, в котором есть какой-то текст, я не смогу вернуть его назад.

Я не знаю, какой .vimrc он использует.

Я обнаружил, что есть GSMACPTUSER:[USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72] VIMRC.; 6. Но после редактирования, скажем, добавьте строку "set number", это не даст эффекта (без номера).

Редактировать: я копирую содержимое vimrc. в .vimrc внутри sys $ login, и некоторые функции работают, но некоторые нет. Showmode работает, номер строки не работает, backspace не работает, хотя я могу использовать REPLACE(дважды нажать insert), чтобы перезаписать слова.

Вот содержимое .vimrc, которое я создал в sys $ login:

" An example for a vimrc file.
"
" Maintainer:   Bram Moolenaar <Bram@vim.org>
" Last change:  2008 Jul 02
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"         for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"       for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.

set showmode
set number
set tabstop=8
set shiftwidth=8

if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start
set backspace=2

if has("vms")
  set nobackup      " do not keep a backup file, use versions instead
  hi search ctermbg=LightBlue
  let Tlist_Ctags_Cmd="vim:ctags.exe" " for taglist plugin
else
  set backup        " keep a backup file
endif
set history=50      " keep 50 lines of command line history
set ruler       " show the cursor position all the time
set showcmd     " display incomplete commands
set incsearch       " do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap <C-U> <C-G>u<C-U>

" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
  set mouse=a
endif

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  " Also don't do it when the mark is in the first line, that is the default
  " position when opening a file.
  autocmd BufReadPost *
    \ if line("'\"") > 1 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else

  set autoindent        " always set autoindenting on

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
          \ | wincmd p | diffthis
endif

2 ответа2

1

Чтобы найти места, где ваш Vim ищет файлы vimrc, выполните

:version

и посмотрите на строки примерно на половину или две трети пути вниз по странице. Чтобы увидеть, какие файлы Vim на самом деле читает при запуске, выполните

:scriptnames

vimrc должен быть в верхней части этого списка. Чтобы увидеть, установлена ли конкретная опция из вашего vimrc, скажем, «число», например, выполните

:verbose set number?

Эта команда покажет значение опции, и если она была установлена из какого-либо файла запуска, она скажет: «Последний набор из <имя файла>».

Поведение клавиши Backspace отличается в обычном режиме и в режиме вставки. Если у вас все еще есть проблемы, это поможет вам точно знать, какие шаги вы предпринимаете и каковы результаты.

0

Решение было разделено. Я не знаю причину, но приведенные ниже настройки просто работают. Он появился после попытки многих разных настроек для вызова VIM.EXE.

  1. Предположим, что vim.exe находится в папке $ GSMACPTUSER: [USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72], должен быть пример файла vimrc, в данном случае его имя VIMRC_EXAMPLE.VIM; 1, это чистый копия vimrc

  2. Скопируйте VIMRC_EXAMPLE.VIM; 1 в sys $ login как.VIMRC. В моем случае sys $ Login - это $ GSMACPTUSER: [USER.TGSM_OPR.AXP]

  3. Используйте dcl для определения символа, необходимого для vim. Например: login.com

  4. В файле dcl есть 2 строки:

    $ VIM: == $ GSMACPTUSER: [USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72] VIM.EXE

Это должно определить VIM.EXE, чтобы мы могли вызывать VIM через "vim [file-spec]".

$ VIMRUNTIME :== $GSMACPTUSER:[USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72]

Я считаю, что этот символ говорит VIM, где искать некоторые конфигурации. Это очень важно.

  1. Запустите dcl один раз, и все работает! Редактировать файл .vimrc можно в sys $ login.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .