Pregunta vim en OpenVms, retroceso no funciona


Soy telnet usando OpenVms y no había vim por defecto. Tengo que portar un vim en OpenVms solo. No tengo control de la máquina en sí.

Descargué una copia de vim72 para OpenVms y la descomprimí en un directorio, luego definí el símbolo para vincularlo al VIM.EXE.

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

Copié el archivo vimrc al directorio sys $ login y comencé a usar vim.

Descubrí que no puedo usar la tecla de retroceso, ni Ctrl + H funcionan en algunos escenarios. Si comienzo un nuevo documento, el retroceso está funcionando y puedo retroceder cuando lo desee. Sin embargo, si abro un archivo ya existente que tiene texto dentro, no puedo retroceder ese texto.

No sé qué .vimrc está usando.

Encontré que hay un GSMACPTUSER: [USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72] VIMRC.; 6. Pero después de editarlo, digamos agregue una línea "establecer número", no da el efecto (sin número).

Editar: copio el contenido de vimrc. para .vimrc dentro de sys $ login, y algunas funciones están funcionando, pero otras no. Showmode está funcionando, el número de línea no funciona, el retroceso no funciona, aunque puedo usar REEMPLAZAR (presione insertar dos veces) para sobrescribir las palabras.

Aquí está el contenido de .vimrc que creé en 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


origen




Respuestas:


Para encontrar los lugares donde su Vim está buscando archivos vimrc, ejecute

:version

y mira las líneas alrededor de la mitad o dos tercios del camino hacia abajo de la página. Para ver qué archivos Vim está leyendo en el inicio, ejecuta

:scriptnames

UN vimrc debería estar en la parte superior de esa lista. Para ver si se ha configurado una opción particular desde su vimrc, diga 'number' por ejemplo, ejecute

:verbose set number?

Ese comando mostrará el valor de la opción y si se configuró a partir de algún archivo de inicio, dirá "Última configuración desde <nombre de archivo>".

El comportamiento de la tecla de retroceso difiere entre los modos normal e inserción. Si todavía tiene problemas con él, sería útil saber exactamente qué pasos está tomando y cuáles son exactamente los resultados.


1



Cuando en Insertar, el retroceso no se moverá cuando encuentre una palabra ya existente. Para el modo normal, lo olvido, lo verificaré el próximo lunes. - lamwaiman1988
Como probablemente sepa, el retroceso de una palabra existente en el modo de inserción se controla mediante la opción de "retroceso" y configurarlo como lo ha hecho en su vimrc debería permitirlo, por lo que esa es otra indicación de que su vimrc no se está leyendo. - garyjohn
: scriptname give me sys $ login: .vimrc, y en ese vimrc ya hay un "backspace = 2" ... - lamwaiman1988
Que hace :verbose backspace? ¿impresión? Eso le dirá si la configuración en .vimrc está siendo anulada y puede decirle si se está ignorando la configuración en .vimrc. - garyjohn
retroceso = (Nada) - lamwaiman1988


Una solución fue dividida. No sé la razón, pero la siguiente configuración simplemente funciona. Se produjo después de probar muchas configuraciones diferentes para llamar a VIM.EXE.

  1. Supongamos que vim.exe reside en la carpeta $ GSMACPTUSER: [USER.TGSM_OPR.AXP.RAYMOND_LAM.VIM72], debe haber un archivo de ejemplo de vimrc, en este caso, su nombre es VIMRC_EXAMPLE.VIM; 1, este es un archivo limpio copia de vimrc

  2. Copie VIMRC_EXAMPLE.VIM; 1 en sys $ login como .VIMRC. En mi caso, sys $ Login es $ GSMACPTUSER: [USER.TGSM_OPR.AXP]

  3. Use un dcl para definir el símbolo necesario para vim. Por ejemplo: login.com

  4. En el archivo dcl, hay 2 líneas:

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

Esto es para definir el VIM.EXE para que podamos llamar a VIM a través de "vim [file-spec]".

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

Creo que este símbolo le dice a VIM dónde buscar algunas configuraciones. Esto es muy importante.

  1. ¡Ejecute el dcl una vez y todo funciona! Se puede editar el archivo .vimrc en sys $ login.

0