Kirjoittaja Aihe: LTS 18.04:n vim-editori ei noteeraa .vimrc-tiedoston map-määrityksiä  (Luettu 3253 kertaa)

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Olen vuosikausia käyttänyt vim-editorin kanssa samaa kotihakemiston .vimrc-tiedostoa, jossa on map-määrityksiä joillekin näppäimille. Se on toiminut odotetulla tavalla aina Ubuntu-versioon LTS 16.04 asti se mukaan lukien.  Mutta nyt LTS 18.04:ssä vim ei enää noteeraa .vimrc-tiedoston map-määrityksiä lainkaan.  Missähän vika?

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Anna esimerkki määrityksestä, joka ei toimi, niin on helpompi arvailla syitä.  :)

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Tässä .vimrc-tiedostoni:

set enc=utf-8
set fileencoding=utf-8

syntax on
set autoindent
set autoprint
set noignorecase
set nomesg
set noslowopen
set noterse
set nonumber
"
set report=2
set tabstop=8
set wrapmargin=8
"
map! <Left> ^[
map <Left> h
map! <Up> ^[k
map <Up> k
map! <Right> ^[l
map <Right> l
map! <Down> ^[j
map <Down> j
map! ^[[7~ ^[1G
map ^[[7~ 1G
map! ^[[5~ ^[^B
map ^[[5~ ^B
map! ^[[6~ ^[^F
map ^[[6~ ^F
map <F9> 0d3wk
map <F2> 0i  2 CONT ^[j
map <F3> 0i    3 CONT ^[j
map <F4> 0i      4 CONT ^[j
map <F5> $
map! <F5> $
map! <F6> \
map! <F7> {
map! <F8> }


sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Ilmeisesti sama ongelma, joka on raportoitu jo 30.4.2018:

https://bugs.launchpad.net/ubuntu/+source/vim/+bug/1767978

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
LTS 16.04:ssä minulla oli vim-versio 7.4, joka noteerasi .vimrc-tiedostoni määritykset moitteettomasti.  Toimiikohan tämä vanhempi vim-versio vielä LTS 18.04:ssä? Onnistuuko tähän versioon paluu LTS 18.04:ssä seuraavasti?

sudo apt-get remove vim
sudo apt-get update
sudo apt-get install vim=7.4

Vai aiheutuukohan tästä jokin sotku, jonka voi selvittää vain asentamalla 18.04:n uudestaan?

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Vielä yksi raportti kyseisestä ongelmasta:

https://ubuntuforums.org/showthread.php?t=2398358

Olen noteerannut vastauksessa ehdotetut asiat, poistanut vim-tinyn ja
asentanut vimin uudestaan.

Kotihakemistossani olevan .vimrc-tiedostoni suojaukset:

-rw-r--r-- 1 sippu sippu 525 syys   2 14:53 .vimrc

Komento

vim --version

tuottaa tulosteen (lyhennettynä):

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)
Pätsit: 1-1453
Muokannut pkg-vim-maintainers@lists.alioth.debian.org
Kääntänyt : pkg-vim-maintainers@lists.alioth.debian.org
Huge-versio ilman GUIta. Ominaisuudet mukana (+) ja poissa (-):
[...]
   järjestelmän vimrc: "$VIM/vimrc"
     käyttäjän vimrc: "$HOME/.vimrc"
 2. käyttäjän vimrc: "~/.vim/vimrc"
      käyttäjän exrc: "$HOME/.exrc"
       defaults-tiedosto: "$VIMRUNTIME/defaults.vim"
  $VIMin fallback: "/usr/share/vim"
Käännös: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-NQEcoP/vim-8.0.1453=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linkitys: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu -lpython3.6m -lpthread -ldl -lutil -lm

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Sivulla

https://stackoverflow.com/questions/3495124/not-reading-vimrc

annetusta vihjeestä käynnistin vimin komennolla

strace -o vim_strace vim foo

Sitten poistuin vimistä ja suoritin komennon

grep vimrc vim_strace

ja tässä on tulos:

stat("/usr/share/vim/vimrc", {st_mode=S_IFREG|0644, st_size=2469, ...}) = 0
openat(AT_FDCWD, "/usr/share/vim/vimrc", O_RDONLY) = 3
stat("/usr/share/vim/vimrc", {st_mode=S_IFREG|0644, st_size=2469, ...}) = 0
stat("/etc/vim/vimrc.local", 0x7ffeea93d150) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/vim/vimrc.local", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
stat("/home/sippu/.vimrc", {st_mode=S_IFREG|0644, st_size=525, ...}) = 0
openat(AT_FDCWD, "/home/sippu/.vimrc", O_RDONLY) = 3
stat("/home/sippu/.vimrc", {st_mode=S_IFREG|0644, st_size=525, ...}) = 0
write(5, " ~/.vimrc\n|4,39,1,0,1536001818,\""..., 4096) = 4096

Tästä voi päätellä, että kotihakemistoni .vimrc-tiedosto on ainakin nähty.

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Minulla tuo vimrc toimii kyllä normaalisti. Käytössä sama Vimin versio Ubuntu 18.04:ssä. (Käytän normaalisti vim-gnome tai vim-gtk3-pakettia, koska se tukee graafisen työpöydän leikepöytää, mutta kokeilin nyt pelkällä vim-paketilla). Ainakin nuolinäppäinten ja funktionäppäinten F5 - F9 mäppäykset tekevät sen mitä pyydetäänkin. Muiden tarkoitusta en alkanut päättelemään. :)

Mitä sinulla on tiedostossa /etc/vim/vimrc?


Kannattaa kokeilla siirtää nykyinen .vimrc syrjään ja luoda uusi tiedosto, johon kirjoitat kokeeksi vain yhden map-rivin. Toimiiko se?
« Viimeksi muokattu: 04.09.18 - klo:17.36 kirjoittanut nm »

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Tiedosto /etc/vim/vimrc sisältää kommenttirivien lisäksi vain seuraavat rivit:

runtime! debian.vim
if has("syntax")
  syntax on
endif
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

Kokeilin .vimrc-tiedostolla, jossa on vain seuraava rivi:

map <F5> $

Ei toimi: F5-näppäimen painallus vimissä ei tee mitään.

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Tiedosto /etc/vim/vimrc sisältää kommenttirivien lisäksi vain seuraavat rivit:

runtime! debian.vim
if has("syntax")
  syntax on
endif
if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif

OK, näyttää oletussisällöltä.


Kokeilin .vimrc-tiedostolla, jossa on vain seuraava rivi:

map <F5> $

Ei toimi: F5-näppäimen painallus vimissä ei tee mitään.

Outo juttu. Toimii kyllä minulla, eli normaalitilassa hyppää F5:lla rivin loppuun. Editointitilassa kirjoittaa merkkijonon <F5>

Voimassa olevat mäppäykset voi listata komennolla :map

Koodia: [Valitse]
v  gx            <Plug>NetrwBrowseXVis
n  gx            <Plug>NetrwBrowseX
v  <Plug>NetrwBrowseXVis * :<C-U>call netrw#BrowseXVis()<CR>
n  <Plug>NetrwBrowseX * :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netr
w_gx : '<cfile>')),netrw#CheckIfRemote())<CR>
   <F5>          $
Paina enteriä tai kirjoita komento aloittaaksesi

Siellä näkyy viimeisellä rivillä .vimrc:ssä asetettu F5-mäppäys.


Mikä terminaaliohjelma sinulla on käytössä? Itse kokeilin gnome-terminalilla. Onko .vim-hakemistossa jotain tavaraa?
« Viimeksi muokattu: 04.09.18 - klo:18.36 kirjoittanut nm »

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Minulla on funktionäppäimille F2-F9 map-määrittely .vimrc:ssä ja niillä on haluttu vaikutus LTS 16.04:ssä, mutta ei LTS 18.04:ssä. Kun olen 18.04:ssä vimissä joko komento- taii syöttömoodissa, niin funktionäppäimillä on järjestelmän niille määrittelemä oletusmerkitys, esimerkiksi F2 himmentää näyttöä ja F3 kirkastaa sitä. Näyttää siltä, ettei 18.04-koneessani (HP-kannettava) järjestelmä ollenkaan anna funktionäppäinten lähettämää sekvenssiä vimille käsiteltäväksi.

Kun 18.04:ssä komennan vimissä :map, näytetään kaikki mäppäykset niin kuin olen ne .vimrc-tiedostoon määritellyt, mutta todellisuudessa niillä ei siis ole mitään vaikutusta.

Käyttämäni terminaaliohjelma on 18.04:ssä Genomen pääte 3.28.2 ja 16.04:ssä Genomen pääte 3.18.3.

18.04:n kotihakemistossani ei ole .vim-nimistä alihakemistoa, mutta vanhan 16.04-koneeni (Samsung-kannettava) kotihakemistossa sellainen on, ja siinä on tiedosto .netrwhist. 

Kopioin vielä 16.04-koneeltani vim.basic-tiedoston (siis laajan vimin suoritusversion) 18.04-koneelleni ja kokeilin siellä. Sama tulos kuin 18.04:ään asennetulla vimillä: funktionäppäinten mäppäykset eivät siellä toimi.

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Minulla on funktionäppäimille F2-F9 map-määrittely .vimrc:ssä ja niillä on haluttu vaikutus LTS 16.04:ssä, mutta ei LTS 18.04:ssä. Kun olen 18.04:ssä vimissä joko komento- taii syöttömoodissa, niin funktionäppäimillä on järjestelmän niille määrittelemä oletusmerkitys, esimerkiksi F2 himmentää näyttöä ja F3 kirkastaa sitä. Näyttää siltä, ettei 18.04-koneessani (HP-kannettava) järjestelmä ollenkaan anna funktionäppäinten lähettämää sekvenssiä vimille käsiteltäväksi.

No niin, tuo selittää asian. Kyseessä on siis eri kone kuin aiemmin, ja kyseisessä HP:n läppärissä funktionäppäinten sijaan oletuksena on käytössä multimedianäppäimet. Funktionäppäimet toimivat siis funktionäppäiminä painamalla Fn+F1, Fn+F2 jne. Tämän voi vaihtaa koneen biosissa. Kerro läppärin tarkempi malli, jos asetusta ei löydy.

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
18.04-koneeni on HP 250 G6 15,6".

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
18.04-koneeni on HP 250 G6 15,6".

OK. Tuossa koneessa "toimintonäppäimet" voi vaihtaa funktionäppäimiksi painamalla Fn + vasen Shift, jolloin Fn Lock -merkkivalon pitäisi syttyä. Tämä on mainittu manuaalin sivulla 12: http://h10032.www1.hp.com/ctg/Manual/c05498622

sepposippu

  • Käyttäjä
  • Viestejä: 12
    • Profiili
Tuo Fn + vasen shift ei koneessani jostain syystä toimi eikä merkkivalo syty, mutta antamasi neuvon mukaisesti kävin BIOSissa (näppäimen F10 painalluksella käynnistettäessä) ja sain siellä asetetuksi funktionäppäinten oletusasetuksen pois.

Parhaat kiitokset avusta! Valitan, että olen taitamattomuuttani näin pitkään vaivannut tällä asialla.

Terveisin,

Seppo Sippu

nm

  • Käyttäjä
  • Viestejä: 16429
    • Profiili
Tuo Fn + vasen shift ei koneessani jostain syystä toimi eikä merkkivalo syty

OK. Voi olla, että tuo toimii vain Windowsissa HP:n ajureilla tai apuohjelmilla.


mutta antamasi neuvon mukaisesti kävin BIOSissa (näppäimen F10 painalluksella käynnistettäessä) ja sain siellä asetetuksi funktionäppäinten oletusasetuksen pois.

Parhaat kiitokset avusta! Valitan, että olen taitamattomuuttani näin pitkään vaivannut tällä asialla.

Eipä mitään, hyvä että ratkaisu löytyi!  :)