Vnc'den Vim'e: beklenmeyen karakterleri ekleyen sayısal tuşlar


2

Bu sorudan nasıl kaynaklanıyor ? Numpad'in iterm2'yi osx üzerinde = xterm ile kullanarak vim'de çalışmasını nasıl sağlayabilirim? ve Numpad'in = xterm ile osx üzerinde iterm2 kullanarak vim'de çalışmasını nasıl sağlayabilirim? ancak ilgili cevaplarda açıklanan unsurları bulamadım.

Bir Linux kutusundan VNC aracılığıyla bir Linux kutusuna erişiyorum.

Linux kutusunda, bu VNC oturumunda, sayısal tuş takımından '/' ve '*' yazarken Vim'de ve ekleme modunda düzenlemekteyim (yani C tarzı bir yorum başlatmak için) o 've' j 'yerine eklenir (özel olarak, satır başı eklenmiş gibi görünür, sonra ilk sekme durağında' o 'veya' j 'eklenir).

Belirttiğim sorular ve cevaplar MacO’lara özgü görünüyor; Örneğin, Linux kutusunda çalışan terminal ile VNC'nin Tercihleri ​​arasında "Numeric Keypad ile xterm" ile ilgili herhangi bir referans bulamadım.

Birisi bu sorunu tanımlanmış ortamımda nasıl çözebileceğimi önerebilir mi? Bu davranışın kaynağının Vim, terminal veya VNC olup olmadığını belirsizim.

İşte $TERM, eğer alakalılarsa Vim versiyonları ve .vimrc.

>vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 21 2016 15:22:28)

>echo $TERM
screen-256color

>cat ~/.vimrc
set backspace=indent,eol,start
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
filetype plugin indent on
autocmd FileType make set noexpandtab shiftwidth=4 softtabstop=0
set cino+=(0
set statusline=
set statusline +=\[%n] "buffer number
set statusline +=\%F   "File
set statusline +=%=%l/%L "currentLine/totalLine
set statusline +=%4v "virtual column
set laststatus=2
set t_Co=256
colorscheme torte
set number
"let g:netrw_liststyle = 3
syntax on

Güncelleme: Muhtemelen bir diğer faktör: Bash kabuğumun üzerine tmux kullanıyorum. .Tmux.conf:

>cat ~/.tmux.conf 
unbind C-b
set -g prefix C-a
bind C-a send-prefix
set-window-option -g mode-keys vi
set -g set-titles on
set-window-option -g automatic-rename off
set-option -g allow-rename off

Vnc üzerinden başka bir linux kutusundan bir linux kutuya erişme ve tmux içinde vim çalıştırma konusunda da aynı sorunu yaşıyorum. Sorunu görmek için tüm faktörlerin yerinde olması gerekir, vnc / tmux / vim denkleminden çıkarılması her şeyin çalışmasını sağlar. Hem .tmux.conf hem de .vimrc öğelerini geçici olarak kaldırmak farketmez. Bir makro olarak kaydederek, vimin aldığı gerçek tuş vuruşlarının olduğunu keşfettim ^[Oj.
spookypeanut

Araştırma sonuçları: /ve *numlock kapalı iken, VNC'nin dışında aynı işi görüyor. Bununla birlikte, numnc'i vnc içinde (hem xset hem de sistem anahtarlarından geçirerek) açmayı ve numlock kesinlikle açık olmasına rağmen (sayı tuşlarının kendileri çalışır) /ve *hala bu garip davranışa sahip oldum .
spookypeanut

Yanıtlar:


1

Not: Bu bilgiyi net olarak aldım ve kaynak bağlantıyı şimdi bulamadım.

  1. Aşağıdaki dosyayı ortak bir yerde oluşturun:

    $ cat fix_numpad 
    ! initialization, 
    ! Ensure that we have all keysyms we're going to use assigned to something. 
    
    keycode any = KP_Insert 
    keycode any = KP_End 
    keycode any = KP_Down 
    keycode any = KP_Next 
    keycode any = KP_Left 
    keycode any = KP_Begin 
    keycode any = KP_Right 
    keycode any = KP_Home 
    keycode any = KP_Up 
    keycode any = KP_Prior 
    keycode any = KP_Delete 
    
    ! Set the keypad to numeric mode. 
    ! You may need to adjust KP_Next/KP_Prior; possible alternatives 
    ! are KP_Page_Down/KP_Page_Up or just Next/Prior. 
    ! just Next. 
    keysym KP_Insert = KP_0 
    keysym KP_End    = KP_1 
    keysym KP_Down   = KP_2 
    keysym KP_Next   = KP_3 
    keysym KP_Left   = KP_4 
    keysym KP_Begin  = KP_5 
    keysym KP_Right  = KP_6 
    keysym KP_Home   = KP_7 
    keysym KP_Up     = KP_8 
    keysym KP_Prior  = KP_9 
    keysym KP_Delete = KP_Decimal
    
    $
    
  2. Yeni eşlemeleri ata

    $ xmodmap fix_numpad
    

NOT: Bunu, dosyalarınıza ekleyerek ~/.vnc/xstartupeşlemelerinizin daima korunmasını sağlayabilirsiniz.


Lütfen kaynağı bulmaya çalışın ve bir bağlantı sağlamak için cevabınızı düzenleyin .
G-Man

Bu umut verici görünüyordu, ama ne yazık ki, hiçbir fark yaratmadı: açıklanan sorun, yayınlanan içeriğinizle bir dosya oluşturduktan ve xmodmap fix_numpadbenim " " işaretimi ekledikten sonra değişmedi ~/.vnc/xstartup.
StoneThrow

Makinemde kusursuz bir şekilde çalışıyor ve işte haritalarım: $ xmodmap xmodmap: değiştirici başına 4 tuşa kadar, (parantez içindeki tuş kodları): shift Shift_L (0x32), Shift_R (0x3e) kilidi Caps_Lock (0x42) kontrol Control_L (0x25) , Control_R (0x6d) mod1 Alt_L (0x40), Alt_R (0x71), Meta_L (0x9c) mod2 Num_Lock (0x4d) mod3 mod4 Süper_L (0x73), Super_R (0x74), Süper_L (0x7f), Hyper_L (0x80) mod5 Mode_switch (0x8f) ), ISO_Level3_Shift (0x7c)
m_r_nadh

0

Soru kullandığınız anlamına gelir xtermve uygulama tuş takımı modunu açmak istiyor , normal (o olarak ayarlandı ise uygulamadan ). Bunun için xterm, uygulama modlarını her zaman "VT Seçenekleri" menüsündeki bir menü girişi üzerinden açıp kapatabilirsiniz (kontrol-orta-fare tıklaması):

Bu menü girişleri uygulama modundayken (onay işaretli) seçilir .

xterm Bir tuş takımı tuşuna basılıp basılmadığını söylemek için tuş kodu bilgilerini kullanır ve o tuşa ne göndereceğine karar vermek için normal / uygulama modunu kullanır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.