Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: sepposippu - 02.09.18 - klo:22.34
-
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?
-
Anna esimerkki määrityksestä, joka ei toimi, niin on helpompi arvailla syitä. :)
-
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> }
-
Ilmeisesti sama ongelma, joka on raportoitu jo 30.4.2018:
https://bugs.launchpad.net/ubuntu/+source/vim/+bug/1767978
-
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?
-
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
-
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.
-
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?
-
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.
-
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
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?
-
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.
-
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.
-
18.04-koneeni on HP 250 G6 15,6".
-
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
-
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
-
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! :)