vim 8.0: Kopieren von Texten mit der Maus, grrr

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
whiizy
Beiträge: 664
Registriert: 23.07.2011 22:09:37

Re: vim 8.0: Kopieren von Texten mit der Maus, grrr

Beitrag von whiizy » 04.02.2017 15:44:04

@KBDCALLS
history meint hier doch nur den Befehlszeilenspeicher, unter Stretch über die defaults.vim so voreingestellt:

Code: Alles auswählen

set history=200         " keep 200 lines of command line history
Der Befehl vim --version liefert unter Stretch diese Patche:

Code: Alles auswählen

# vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 17 2017 01:26:10)
Included patches: 1-197
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
[...]
Die vim help erwähnte wie im ersten Beitrag gezeigt einen Patch, seit dem defaults.vim wohl eingeführt wurde, wenn ich es richtig verstehe:

Code: Alles auswählen

NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
patch 7.4.2111 to be exact)
Kannst Du damit mehr anfangen?

PS: Überkreuzung, hatte Deinen Beitrag über gnome noch nicht gesehen gehabt. Naja, ist ja eine Neuinstallation, und da sind irgendwelche vimrc vom User noch nicht bearbeitet worden, da kann man Übersteuerungen eigentlich noch nicht übelnehmen. Wer weiß, wie die Installationsroutine bei modifizierter vimrc reagiert hätte.

PPS: Hier gefunden: version8.txt

Patch 7.4.2111
Problem: Defaults are very conservative.
Solution: Move settings from vimrc_example.vim to defaults.vim. Load
defaults.vim if no .vimrc was found.
Files: src/main.c, src/version.c, src/os_amiga.h, src/os_dos.h,
src/os_mac.h, src/os_unix.h, src/feature.h, src/Makefile,
runtime/vimrc_example.vim, runtime/defaults.vim,
runtime/evim.vim, Filelist, runtime/doc/starting.txt

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: vim 8.0: Kopieren von Texten mit der Maus, grrr

Beitrag von rendegast » 04.02.2017 23:53:09

wheezy hat geschrieben:
(vorhandene ~/.vimrc, sodaß die defaults.vim nicht benutzt wird
(ohne ~/vimrc standardmäßig als letzte konf-Datei))
Ein expliziter Aufruf in der /etc/vim/vimrc.local sollte für die allermeisten Fälle ausreichen.
... also hier reicht es nicht,
denn die defaults.vim wird erst anschließend gelesen und überschreibt somit eine eigene mouse-Option in vimrc.local. Habe es verifiziert und es steht auch nochmal so beschrieben in der /etc/vim/vimrc selbst:
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
Ich habe doch aufgeführt

Code: Alles auswählen

...
runtime! defaults.vim
<eigene option>
(nicht

Code: Alles auswählen

...
<eigene option>
runtime! defaults.vim
) Dafür muß natürlich die Bedingung erfüllt sein, daß die defaults.vim NICHT als allerletzte Konf eingelesen wird,
also zumindest eine der Benutzer-Konf existiert.
Es kann genausogut <eigene option> in Benutzer-Konf untergebracht werden.

Kleine Einschränkung: defaults.vim in vimrc.local läßt nosyntax.vim des System NACH der defaults.vim zum Tragen kommen, was eventuell so nicht vorgesehen ist.
Damit defaults.vim wirklich nur von Benutzeroptionen überschrieben wird, sollte

Code: Alles auswählen

runtime! defaults.vim

<eigene optionen>
in der ~/.vimrc eingesetzt werden.
Inwieweit aber nosyntax.vim die defaults.vim (und dessen Rattenschwanz) beträfe?



Ich sehe diese 4 Möglichkeiten
  • vimrc.local (ohne defaults.vim)
    <nosyntax.vim>
    <KEINE Benutzer-Datei>
    <defaults.vim>
  • vimrc.local (ohne defaults.vim)
    <nosyntax.vim>
    <Benutzer-Datei> (mit defaults.vim + Optionen)
    defaults.vim
    Benutzer-Optionen
  • vimrc.local
    defaults.vim
    vimrc.local-Optionen
    <nosyntax.vim>
    <Benutzer-Datei> (ohne defaults.vim)
    Benutzer-Optionen
  • vimrc.local
    defaults.vim
    vimrc.local-Optionen
    <nosyntax.vim>
    <KEINE Benutzer-Datei>
    <defaults.vim>
Der Admin müßte sich zumindest die Möglichkeit offenhalten,
eine der Benutzer-Konf anzulegen,
damit (systemweite) vimrc.local-Optionen, die in Konflikt mit defaults.conf (+Rattenschwanz) liegen,
nicht doch von dieser wegen des impliziten Ladens überschrieben werden.
Also als freundlich gemeinte Vorgabe.
Es liegt dann im Ermessen des Benutzers,
dies durch Beibehalten seiner Konf-Datei(en) so zu belassen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

whiizy
Beiträge: 664
Registriert: 23.07.2011 22:09:37

Re: vim 8.0: Kopieren von Texten mit der Maus, grrr

Beitrag von whiizy » 05.02.2017 10:24:17

@rendegast
Das wird jetzt doch sehr abstrakt und da ist es ganz nützlich, sich erstmal wieder dem konkreten Beispiel zuzuwenden. Ich fasse daher einmal kurz zusammen, was wir bisher wirklich wissen. Eigentlich ist die konkrete Problemstellung des Threads ja auch bereits gelöst.

Ziel war:
Wie kann man die neuen defaults von vim 8.0 nutzen und gleichzeitig eine abweichende eigene Option beibehalten (hier "set mouse-=a")?

Lösung 1:
Wenn es jeder einzelne User selbst regeln soll, kann er sich eine .vimrc im home anlegen. Zwei Lösungen für diesen Fall hatten wir gefunden:

Code: Alles auswählen

.vimrc
unlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
set mouse-=a

und

.vimrc
runtime! defaults.vim
set mouse-=a
Lösung 2:
Wenn man die konkrete mouse-Option hingegen *global* setzen möchte (also ohne, daß jeder User sich eine .vimrc anlegen muss), dann funktionierte die Anpassung in:

Code: Alles auswählen

/usr/share/vim/vim80/defaults.vim
set mouse-=a
# statt set mouse=a
Diese Lösung für den globalen Fall ist jedoch verbesserungswürdig, da sie nicht gegen Distributions-Updates geschützt ist.

Wer eine weitere *konkrete* globale Lösung hat, kann sie hier im Thread ja nochmal aufschreiben.

Besonders schön wäre am Ende natürlich eine universelle Lösung, die zunächst eine globale Voreinstellung einer Einzeloption durch den Admin zulässt, aber gleichzeitig deren Überschreibung durch einen User über eine .vimrc zulässt.
(also so, wie es seit Jahren bestens funktioniert hat :wink: )

whiizy
Beiträge: 664
Registriert: 23.07.2011 22:09:37

Re: vim 8.0: Kopieren von Texten mit der Maus, grrr

Beitrag von whiizy » 06.02.2017 20:13:50

Besonders schön wäre am Ende natürlich eine universelle Lösung, die zunächst eine globale Voreinstellung einer Einzeloption durch den Admin zulässt, aber gleichzeitig deren Überschreibung durch einen User über eine .vimrc zulässt.
(also so, wie es seit Jahren bestens funktioniert hat :wink: )
... ich habe mich jetzt nochmal etwas umgesehen [1] und dafür eine Lösung gefunden, die quasi global ist, aber auch lokal von einer .vimrc übersteuert werden kann:

Code: Alles auswählen

Anlegen einer /etc/vim/vimrc.local mit:

runtime! defaults.vim
let g:skip_defaults_vim = 1
set mouse-=a
In einer selbstangelegten .vimrc könnte ein User die obige mouse-Option des Admins wieder zurücksetzen, z.B.:

Code: Alles auswählen

.vimrc
set mouse+=a
Gruß

[1] https://bugs.debian.org/cgi-bin/bugrepo ... bug=837761

Antworten