Monday, October 28, 2024

Re: How to display and copy tabs as tabs in GTK env?

On So, 27 Okt 2024, Taka wrote:

> On Friday, October 25, 2024 at 7:22:12 AM UTC-7 Christian Brabandt wrote:
>
> I am not sure I understood the question completely.
>
> Ok, let's try this.  Let's make a test document, enter this in your terminal (as I'm entering in my gnome-terminal window):
>
> vim tabtest
> i0        1         2
> 12345678901234567890
> <tab>1<tab>2<esc>:wq
>
> So the first two lines will count spaces and the last two lines will count tabs, with the last line starting with a tab.
> Now display it with more:
> more tabtest
> Visually, the two tab lines are shown with a 7-character wide space in between, with an 8-character wide space at the beginning of the last line.
> Now, try to select the area between 0 and 1 with your mouse, put your pointer under the 4 and click and drag to the 5, like you were trying to select "45", but in the white space underneath.  Since more printed a tab, a tab is selected, and the selection expands to cover the width of the tab:
> Screenshot from 2024-10-27 17-48-26.png
> This can be copied/pasted as a tab anywhere now with whatever your favorite method is (^⇧C/^⇧V, right-click context menu copy/paste, ^Ins/⇧Ins).
> Now, display it with vim and try to do the same, it won't let you.  It'll select 2 spaces under the "4" and "5", even tho listchars is showing a tab is there, which i defined with some box drawing chars (set lcs=eol:┤,tab:╾┈╸,space:⎵):
> Screenshot from 2024-10-27 18-30-27.png
>
> it also does the same thing if i set nolist:
> Screenshot from 2024-10-27 18-35-48.png

I tried that in putty and Windows terminal. In both cases, I could
select only the 2 "blanks" and it did not visually select the actual tab
characters. So it behaves like vim for me.

> Hope that helps explain the issue better.

That's why I suggested to use the clipboard register to copy the actual
values directly instead of selecting what the terminal "sees".

> But if you want to
> copy the actual values instead of the visual representation of thte
> characters on the screen, please learn to use the clipboard register,
>
> Thanks, I know how to use vim's clipboard, but it's internal only and I need to copy/paste between different servers i'm connected to (via SSH) and that just won't work.

So you are using a remote connection. You did not mention this before.
Try using ssh -x/-y to forward the X11 connection.

Thanks,
Christian
--
Don't tell me that worry doesn't do any good. I know better. The things
I worry about don't happen.
-- Watchman Examiner

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/Zx9B%2BPCJxHihIj7%2B%40256bit.org.

Sunday, October 27, 2024

Re: How to display and copy tabs as tabs in GTK env?

whups sorry i simplified my example but forgot to update the descriptions, needing that coffee again.  I had another line that started with a 0, so:
0<tab>1<tab>2
but it wasn't needed for anything. so mentions of a 4th line can be ignored.  Hope the rest is clear though!

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/3926b8e7-47a5-449e-8468-933f522f3462n%40googlegroups.com.

Re: How to display and copy tabs as tabs in GTK env?

On Friday, October 25, 2024 at 7:22:12 AM UTC-7 Christian Brabandt wrote:
I am not sure I understood the question completely.
Ok, let's try this.  Let's make a test document, enter this in your terminal (as I'm entering in my gnome-terminal window):

vim tabtest
i0        1         2
12345678901234567890
<tab>1<tab>2<esc>:wq

So the first two lines will count spaces and the last two lines will count tabs, with the last line starting with a tab.
Now display it with more:
more tabtest
Visually, the two tab lines are shown with a 7-character wide space in between, with an 8-character wide space at the beginning of the last line.
Now, try to select the area between 0 and 1 with your mouse, put your pointer under the 4 and click and drag to the 5, like you were trying to select "45", but in the white space underneath.  Since more printed a tab, a tab is selected, and the selection expands to cover the width of the tab:
Screenshot from 2024-10-27 17-48-26.png
This can be copied/pasted as a tab anywhere now with whatever your favorite method is (^⇧C/^⇧V, right-click context menu copy/paste, ^Ins/⇧Ins).
Now, display it with vim and try to do the same, it won't let you.  It'll select 2 spaces under the "4" and "5", even tho listchars is showing a tab is there, which i defined with some box drawing chars (set lcs=eol:┤,tab:╾┈╸,space:⎵):
Screenshot from 2024-10-27 18-30-27.png

it also does the same thing if i set nolist:
Screenshot from 2024-10-27 18-35-48.png

Hope that helps explain the issue better.
 
But if you want to
copy the actual values instead of the visual representation of thte
characters on the screen, please learn to use the clipboard register,
Thanks, I know how to use vim's clipboard, but it's internal only and I need to copy/paste between different servers i'm connected to (via SSH) and that just won't work.

Interestingly, and maybe a hint for a complete solution, if I load up gvim instead, which loads in a GUI window, it works as expected.
Screenshot from 2024-10-27 18-39-35.png

 However, this won't work when I need to copy something from a remote server.  The retab! command that BJP mentioned is helpful, and maybe what I just have to do going forward, but it would be nice if vim just displayed the tabs properly.  Not sure what magic it's doing when run from a terminal and not sure why that is useful for anyone either...

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/44fc6b71-262a-44ff-aa15-2405969f5b2en%40googlegroups.com.

Re: How to display and copy tabs as tabs in GTK env?

On Saturday, October 26, 2024 at 3:21:46 AM UTC-7 BPJ wrote:
The important part is the `noexpandtabs` which you apparently missed. The `listchars` was only meant to make the difference visible. BTW you may also want `:retab!` to convert already existing runs of spaces to tabs and/or `:setl ts=4` (or 2) to make the real tabs take up less screen real estate.
hohoho apparently i did.  seems i gave you too much coffee and need some of it myself.
...Actually, I already have that option set in my vimrc as I showed in the OP, apparently you missed that?  apparently we both need more coffee.
Still, I did try entering the 3 commands with setlocal but alas that made no difference and tabs were still selected and copied/pasted as spaces.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/65a27076-d3a7-47c9-a83d-e6ef9ed40430n%40googlegroups.com.

Saturday, October 26, 2024

Re: How to display and copy tabs as tabs in GTK env?


Den lΓΆr 26 okt. 2024 07:10Taka <scarlion520@gmail.com> skrev:
On Friday, October 25, 2024 at 7:16:30 AM UTC-7 BPJ wrote:
Sorry, making a fool of myself, that should be
:setl list
and
:setl nolist
I blame Friday afternoon! :-)

πŸ€” so display the listchars and then don't display the listchars?
This helps in that the listchars marks are not copied/pasted, but tabs are still printed and copied/pasted as spaces...
Here ya go ☕☕☕ πŸ˜‰

The important part is the `noexpandtabs` which you apparently missed. The `listchars` was only meant to make the difference visible. BTW you may also want `:retab!` to convert already existing runs of spaces to tabs and/or `:setl ts=4` (or 2) to make the real tabs take up less screen real estate.


--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ac5ca664-037f-4a86-a448-89d3158400f7n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhASpnyk_gKTNpTH_Aei-j8MFMB2HL16i9%2BCorT1NHYE%3Dg%40mail.gmail.com.

Friday, October 25, 2024

Re: How to display and copy tabs as tabs in GTK env?

On Friday, October 25, 2024 at 7:16:30 AM UTC-7 BPJ wrote:
Sorry, making a fool of myself, that should be
:setl list
and
:setl nolist
I blame Friday afternoon! :-)

πŸ€” so display the listchars and then don't display the listchars?
This helps in that the listchars marks are not copied/pasted, but tabs are still printed and copied/pasted as spaces...
Here ya go ☕☕☕ πŸ˜‰

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ac5ca664-037f-4a86-a448-89d3158400f7n%40googlegroups.com.

Re: How to display and copy tabs as tabs in GTK env?

On Do, 24 Okt 2024, Taka wrote:

> Hi all,
>
> I'm using the Gnome Terminal with Debian vim-gtk3-9.1.777 (full --version
> below), but when I display a file containing tab characters with more, for
> example, it'll print the tab characters on the screen and I can select them
> with the normal click+drag of my mouse, which will select blocks 8 spaces
> wide.  Likewise, ^⇧C will copy tab characters to the Gnome clipboard and ^⇧V
> will paste them in the terminal or ^V will paste them in any other gtk app.
>
> However, vim  will print the tabs as spaces, even though settings like
> listchars clearly show a tab is there.  Likewise, the mouse selects individual
> space characters and ^⇧C/^⇧V will copy/paste spaces, or the actual characters
> printed by listchars if defined.
>
> How do I get vim to behave more like... well, more in this respect?

I am not sure I understood the question completely. But if you want to
copy the actual values instead of the visual representation of thte
characters on the screen, please learn to use the clipboard register,
e.g. copy the whole file into your clipboard use the ex command :%y +

You can also use "+yy to just copy the current line and "+p to paste
from the clipboard

Thanks,
Christian
--
Those of you who think you know everything are annoying those of us who do.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ZxuphtEl80qay0oM%40256bit.org.

Re: How to display and copy tabs as tabs in GTK env?



Den fre 25 okt. 2024 16:13BPJ <bpj@melroch.se> skrev:


Den tors 24 okt. 2024 22:07Taka <scarlion520@gmail.com> skrev:
Hi all,

I'm using the Gnome Terminal with Debian vim-gtk3-9.1.777 (full --version below), but when I display a file containing tab characters with more, for example, it'll print the tab characters on the screen and I can select them with the normal click+drag of my mouse, which will select blocks 8 spaces wide.  Likewise, ^C will copy tab characters to the Gnome clipboard and ^⇧V will paste them in the terminal or ^V will paste them in any other gtk app.

However, vim  will print the tabs as spaces, even though settings like listchars clearly show a tab is there.  Likewise, the mouse selects individual space characters and ^C/^V will copy/paste spaces, or the actual characters printed by listchars if defined.

How do I get vim to behave more like... well, more in this respect?

:setlocal noexpandttab↲

aka

:setl noet

and perhaps

:list

:nolist

Sorry, making a fool of myself, that should be

:setl list

and

:setl nolist

I blame Friday afternoon! :-)


to disable as you probably don't want it on all the time

HTH,

/bpj


Thanks, Best Regards.

$ cat ~/.vimrc
" tried various settings, but currently have:
set autoindent smartindent
set shiftwidth=4 tabstop=4
set noexpandtab smarttab

$ vim --version
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Oct 15 2024 01:45:11)
Included patches: 1-777
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       +tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     +perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          +ruby              +wildignore
+cursorbind        +lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con_gui    +mksession         +smartindent       +writebackup
+diff              +modify_fname      +sodium            +X11
+digraphs          +mouse             +sound             +xattr
+dnd               +mouseshape        +spell             -xfontset
-ebcdic            +mouse_dec         +startuptime       +xim
+emacs_tags        +mouse_gpm         +statusline        -xpm
+eval              -mouse_jsbterm     -sun_workshop      +xsmp_interact
+ex_extra          +mouse_netterm     +syntax            +xterm_clipboard
+extra_search      +mouse_sgr         +tag_binary        -xterm_save
-farsi             -mouse_sysmouse    -tag_old_static    
   system vimrc file: "/etc/vim/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/vim/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
3rd user gvimrc file: "~/.config/vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -Wdate-time -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/vim-9.1.0777=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lcanberra -lsodium -lacl -lattr -lgpm -L/usr/lib -llua5.1 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.40/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python3.12/config-3.12-x86_64-linux-gnu -lpython3.12 -ldl -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm -lruby-3.1 -lm -L/usr/lib

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ac28c879-6d0e-4639-baf5-b4468b56ec20n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhA%3DAm9ZxDnSF-Um4kW9pQzrXkuH9RU-9yqj90tj3f9XcA%40mail.gmail.com.

Re: How to display and copy tabs as tabs in GTK env?



Den tors 24 okt. 2024 22:07Taka <scarlion520@gmail.com> skrev:
Hi all,

I'm using the Gnome Terminal with Debian vim-gtk3-9.1.777 (full --version below), but when I display a file containing tab characters with more, for example, it'll print the tab characters on the screen and I can select them with the normal click+drag of my mouse, which will select blocks 8 spaces wide.  Likewise, ^C will copy tab characters to the Gnome clipboard and ^⇧V will paste them in the terminal or ^V will paste them in any other gtk app.

However, vim  will print the tabs as spaces, even though settings like listchars clearly show a tab is there.  Likewise, the mouse selects individual space characters and ^C/^V will copy/paste spaces, or the actual characters printed by listchars if defined.

How do I get vim to behave more like... well, more in this respect?

:setlocal noexpandttab↲

aka

:setl noet

and perhaps

:list

:nolist

to disable as you probably don't want it on all the time

HTH,

/bpj


Thanks, Best Regards.

$ cat ~/.vimrc
" tried various settings, but currently have:
set autoindent smartindent
set shiftwidth=4 tabstop=4
set noexpandtab smarttab

$ vim --version
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Oct 15 2024 01:45:11)
Included patches: 1-777
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       +tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     +perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          +ruby              +wildignore
+cursorbind        +lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con_gui    +mksession         +smartindent       +writebackup
+diff              +modify_fname      +sodium            +X11
+digraphs          +mouse             +sound             +xattr
+dnd               +mouseshape        +spell             -xfontset
-ebcdic            +mouse_dec         +startuptime       +xim
+emacs_tags        +mouse_gpm         +statusline        -xpm
+eval              -mouse_jsbterm     -sun_workshop      +xsmp_interact
+ex_extra          +mouse_netterm     +syntax            +xterm_clipboard
+extra_search      +mouse_sgr         +tag_binary        -xterm_save
-farsi             -mouse_sysmouse    -tag_old_static    
   system vimrc file: "/etc/vim/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/vim/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
3rd user gvimrc file: "~/.config/vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -Wdate-time -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/vim-9.1.0777=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lcanberra -lsodium -lacl -lattr -lgpm -L/usr/lib -llua5.1 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.40/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python3.12/config-3.12-x86_64-linux-gnu -lpython3.12 -ldl -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm -lruby-3.1 -lm -L/usr/lib

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ac28c879-6d0e-4639-baf5-b4468b56ec20n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhCdw8TtevF65-zMfS556SEqiHM21JxsU%3DvTkV%2BcM1BMXw%40mail.gmail.com.

Thursday, October 24, 2024

How to display and copy tabs as tabs in GTK env?

Hi all,

I'm using the Gnome Terminal with Debian vim-gtk3-9.1.777 (full --version below), but when I display a file containing tab characters with more, for example, it'll print the tab characters on the screen and I can select them with the normal click+drag of my mouse, which will select blocks 8 spaces wide.  Likewise, ^C will copy tab characters to the Gnome clipboard and ^⇧V will paste them in the terminal or ^V will paste them in any other gtk app.

However, vim  will print the tabs as spaces, even though settings like listchars clearly show a tab is there.  Likewise, the mouse selects individual space characters and ^C/^V will copy/paste spaces, or the actual characters printed by listchars if defined.

How do I get vim to behave more like... well, more in this respect?

Thanks, Best Regards.

$ cat ~/.vimrc
" tried various settings, but currently have:
set autoindent smartindent
set shiftwidth=4 tabstop=4
set noexpandtab smarttab

$ vim --version
VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Oct 15 2024 01:45:11)
Included patches: 1-777
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       +tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     +perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          +ruby              +wildignore
+cursorbind        +lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con_gui    +mksession         +smartindent       +writebackup
+diff              +modify_fname      +sodium            +X11
+digraphs          +mouse             +sound             +xattr
+dnd               +mouseshape        +spell             -xfontset
-ebcdic            +mouse_dec         +startuptime       +xim
+emacs_tags        +mouse_gpm         +statusline        -xpm
+eval              -mouse_jsbterm     -sun_workshop      +xsmp_interact
+ex_extra          +mouse_netterm     +syntax            +xterm_clipboard
+extra_search      +mouse_sgr         +tag_binary        -xterm_save
-farsi             -mouse_sysmouse    -tag_old_static    
   system vimrc file: "/etc/vim/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/vim/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
3rd user gvimrc file: "~/.config/vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -Wdate-time -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/vim-9.1.0777=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-E -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lcanberra -lsodium -lacl -lattr -lgpm -L/usr/lib -llua5.1 -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.40/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python3.12/config-3.12-x86_64-linux-gnu -lpython3.12 -ldl -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm -lruby-3.1 -lm -L/usr/lib

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/ac28c879-6d0e-4639-baf5-b4468b56ec20n%40googlegroups.com.

Re: color coding for a custom language

> I have created a language specifically designed for making logic
> circuits but noticed vim has no idea how to color code it... how I
> start to teach it?
>
> Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org
>
Hi!

The mechanism for highlighting specific text is based on the `:match` command.

It requires a highlight group as first argument and a regex as second argument.
You can write a file with a `:match` per line, and source it for the appropriate filetype.

Help references:
`:h :match` / `:h ftdetect` / `:h :syntax`.

Tris'

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/YCbxKnWeysgj1tk8AAiplVhfCsOGWTzc_9YeiOxzfYCstGRM382ovd2_rsyldneH9tOE3hxLrPvskZtE3DrZ_6xMhAGH5Efsr47Gn_81bU0%3D%40protonmail.com.

Re: Revert all undos

On 2024-10-24 14:06, BPJ wrote:
>> Other possibilities:
>> - you should be able to use a count with undo like
>> 15u
>> and it doesn't complain about you requesting more undo than exists, so
>> you can do ridiculous counts like
>> 99999u
>> to undo lots of changes
>
> Very good to know as I have been worrying about not knowing how many
> changes I need to undo.

There's an internal limit that you can tweak:

:help 'undolevels'

so you can adjust that up/down as you see fit. You just have to do it
before you make that many changes (so a good candidate for your vimrc)

>> - you can use :earlier and :later to navigate based the undo tree based
>> on time rather than undo counts, so you can do things like
>> :earlier 15m
>> :earlier 2h
>> :earlier 1f
>
> Didn't know about these!

I don't use them often because my internal/mental clock doesn't sync up
with my editing, but if they help you out, they're good to have in your
tool-belt.

>> (and in typing that up, I learned about the "f" suffix for
>> file-write-counts...nice!)
>
> Very nice and very useful, especially if `:w` doesn't have the same side
> effects as :e mentioned above!

Correct, the :e reloads the buffer (similar to passing a range through
an external filter with `:help :range!` which impacts that range),
losing the marks, jump-points, etc. in that range. But :w shouldn't
impact those.

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/Zxo-w09DSJXkSuy2%40thechases.com.

color coding for a custom language

I have created a language specifically designed for making logic
circuits but noticed vim has no idea how to color code it... how I
start to teach it?

--
Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CAGBxaX%3DQ%2BcbigYBL%3Da-OB_MbRAaGP3UiOgGPzjQPsYKynO%2BNtQ%40mail.gmail.com.

Re: Revert all undos

Den ons 23 okt. 2024 16:38Tim Chase <vim@tim.thechases.com> skrev:
On 2024-10-23 15:53, BPJ wrote:
> Is there a single mapping or command for reverting/redoing all undos, or
> alternatively how could one be created, e.g. is there a way to get the
> number of extant undos?[1]
[snip]
> [1]: Obviously I can do `:w` before the undos and then `:e` but I keep
> forgetting the `:w`! :-)

While this works, note that it also loses those undo points and any
jumps (`:help jumplist`) or marks you've set in the file.

Often, if you're bulk-undoing, that's fine.  But it's worth being aware
that :e overwrites some state you might care about.

Oh, good to learn that. I think I have noticed marks disappearing, definitely undos. Sometimes when writing part of a file to a file with another format/extension — typically in order to quote some code snippet in a Markdown file — I'll get the original file set to the wrong syntax/format — probably because my syntax/format hacks in `~/.vim/after/` are shitty but anyway! — and `:e` is then the easiest way to restore things.



Other possibilities:

- you should be able to use a count with undo like

  15u

  and it doesn't complain about you requesting more undo than exists, so
  you can do ridiculous counts like

  99999u

  to undo lots of changes

Very good to know as I have been worrying about not knowing how many changes I need to undo.



- you can use :earlier and :later to navigate based the undo tree based
  on time rather than undo counts, so you can do things like

  :earlier 15m
  :earlier 2h
  :earlier 1f

Didn't know about these!


(and in typing that up, I learned about the "f" suffix for
file-write-counts...nice!)

Very nice and very useful, especially if `:w` doesn't have the same side effects as :e mentioned above!

Thanks a lot!

/bpj

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CADAJKhAXnFpvE7GCxBdGM5yPAmO_juSsX4evOTc%3D3ZzbMffk6g%40mail.gmail.com.

Wednesday, October 23, 2024

Re: Pasting large text in vim

Was using xsel with macros for that. Good to know. Thanks.

On Mon, Oct 21, 2024 at 9:24 PM Ven Tadipatri <vtadipatri@gmail.com> wrote:
Hi,
I've been struggling for years with an issue of not being able to paste large amounts of text in vim in a timely manner.  Yeah, it was kind of bad, because I'd lost all hope that there would be a vim upgrade which would support a basic paste command.
  Before anyone jumps to conclusions, I did try several options - command-shift-V, entering paste mode, tried putting some sort of weird vmap command in my vimrc that called pbcopy. But nothing worked as I just stared at my screen watching text very slowly being pasted.
 Then, I discovered something that changed my vim experience and just wanted to share that with some of you. It turns out there is a star/asterisk register, which holds the clipboard contents. So you can just press double quote - shift 8 -then p (that's "*p) , and instantly, all your worries about pasting large text in vim just go away.
  Now, there is some fine print that I should let people know. Your vim compiler needs to be built with a "+clipboard" option. And of course, finding out your vim compiler options is not common knowledge. But that's easy to check too - just run "vim --version" and pipe it to grep clipboard, and you can see have this amazing feature builtin.
  Don't take my word for it - try out the star register and just watch how these 3 characters can transform your vim copy-paste experience for large clipboard contents.

Thanks,
Ven

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAEodY64rgQZJVGid9_rz-vEb%3DmwVcx7Kw5jzrXBs9KWWCsp2mA%40mail.gmail.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CA%2Bek4BGbAK%2BDSXe%3Da8m4ayxsPkWzrRW3ty7PgHMiQp%3D32i%2BDUA%40mail.gmail.com.

Re: Pasting large text in vim





Igbanam


On Mon, Oct 21, 2024 at 7:24 PM Ven Tadipatri <vtadipatri@gmail.com> wrote:
Hi,
I've been struggling for years with an issue of not being able to paste large amounts of text in vim in a timely manner.  Yeah, it was kind of bad, because I'd lost all hope that there would be a vim upgrade which would support a basic paste command.
  Before anyone jumps to conclusions, I did try several options - command-shift-V, entering paste mode, tried putting some sort of weird vmap command in my vimrc that called pbcopy. But nothing worked as I just stared at my screen watching text very slowly being pasted.
 Then, I discovered something that changed my vim experience and just wanted to share that with some of you. It turns out there is a star/asterisk register, which holds the clipboard contents. So you can just press double quote - shift 8 -then p (that's "*p) , and instantly, all your worries about pasting large text in vim just go away.
  Now, there is some fine print that I should let people know. Your vim compiler needs to be built with a "+clipboard" option. And of course, finding out your vim compiler options is not common knowledge. But that's easy to check too - just run "vim --version" and pipe it to grep clipboard, and you can see have this amazing feature builtin.
  Don't take my word for it - try out the star register and just watch how these 3 characters can transform your vim copy-paste experience for large clipboard contents.

Thanks,
Ven
--
--
--

This was such a pleasant surprise when I tried it that I just wanted to jump in with a "me too" jump on the bandwagon for this hint in the hopes of generating a mini-band-wagon

effect. Well done. Thanks also for the reminder about the -version option. It seems it can be done also inside vim with :version. Thanks.

Re: Revert all undos

On 2024-10-23 15:53, BPJ wrote:
> Is there a single mapping or command for reverting/redoing all undos, or
> alternatively how could one be created, e.g. is there a way to get the
> number of extant undos?[1]
[snip]
> [1]: Obviously I can do `:w` before the undos and then `:e` but I keep
> forgetting the `:w`! :-)

While this works, note that it also loses those undo points and any
jumps (`:help jumplist`) or marks you've set in the file.

Often, if you're bulk-undoing, that's fine. But it's worth being aware
that :e overwrites some state you might care about.


Other possibilities:

- you should be able to use a count with undo like

15u

and it doesn't complain about you requesting more undo than exists, so
you can do ridiculous counts like

99999u

to undo lots of changes

- you can use :earlier and :later to navigate based the undo tree based
on time rather than undo counts, so you can do things like

:earlier 15m
:earlier 2h
:earlier 1f

(and in typing that up, I learned about the "f" suffix for
file-write-counts...nice!)

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/ZxkKOeXEQGcax4uB%40thechases.com.

Revert all undos

Probably a FAQ but I could not find an answer online.

Is there a single mapping or command for reverting/redoing all undos, or alternatively how could one be created, e.g. is there a way to get the number of extant undos?[1]

The use case is that because of my disability I have remapped all `<C-...>` and `<S-...>` mappings I use frequently to use a sequence of two/three keys instead of two/three simultaneous keys (Typically `<F-...>...` with one `<F-...>` for each of `<C-...>` and `<S-...>`) but because of the same disability hitting the same two-key sequence over and over is also difficult.[2]

TIA,

/bpj

[1]: Obviously I can do `:w` before the undos and then `:e` but I keep forgetting the `:w`! :-)

[2]: Sometimes I can use the regular modifier key command, holding down CTRL and pressing the other key repeatedly with the other hand, but in Termux on my tablet or phone those are also two-key sequences so I'm toast anyway! (Of course I have my remappings in Termux too...)

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CADAJKhAEZ61j4a_bJxjGSV-4iVMBApNr2T%2B-LyO2BnQskhzjWw%40mail.gmail.com.

Tuesday, October 22, 2024

Re: Pasting large text in vim

This brings some massive increase in quality of life! Thanks for sharing this.

To take this further, you can map <leader>p to "*p and increase quality of life.

Another way to check what your vim's built with is :version from within Vim; gives proper syntax highlighting



Igbanam


On Mon, Oct 21, 2024 at 7:24 PM Ven Tadipatri <vtadipatri@gmail.com> wrote:
Hi,
I've been struggling for years with an issue of not being able to paste large amounts of text in vim in a timely manner.  Yeah, it was kind of bad, because I'd lost all hope that there would be a vim upgrade which would support a basic paste command.
  Before anyone jumps to conclusions, I did try several options - command-shift-V, entering paste mode, tried putting some sort of weird vmap command in my vimrc that called pbcopy. But nothing worked as I just stared at my screen watching text very slowly being pasted.
 Then, I discovered something that changed my vim experience and just wanted to share that with some of you. It turns out there is a star/asterisk register, which holds the clipboard contents. So you can just press double quote - shift 8 -then p (that's "*p) , and instantly, all your worries about pasting large text in vim just go away.
  Now, there is some fine print that I should let people know. Your vim compiler needs to be built with a "+clipboard" option. And of course, finding out your vim compiler options is not common knowledge. But that's easy to check too - just run "vim --version" and pipe it to grep clipboard, and you can see have this amazing feature builtin.
  Don't take my word for it - try out the star register and just watch how these 3 characters can transform your vim copy-paste experience for large clipboard contents.

Thanks,
Ven

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAEodY64rgQZJVGid9_rz-vEb%3DmwVcx7Kw5jzrXBs9KWWCsp2mA%40mail.gmail.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAOmRJrd_4czXhAsjeAMdsaEWqEcYu1f%2Bz%2BAtPn%3Db_rxWmwOtxQ%40mail.gmail.com.

Monday, October 21, 2024

Pasting large text in vim

Hi,
I've been struggling for years with an issue of not being able to paste large amounts of text in vim in a timely manner.  Yeah, it was kind of bad, because I'd lost all hope that there would be a vim upgrade which would support a basic paste command.
  Before anyone jumps to conclusions, I did try several options - command-shift-V, entering paste mode, tried putting some sort of weird vmap command in my vimrc that called pbcopy. But nothing worked as I just stared at my screen watching text very slowly being pasted.
 Then, I discovered something that changed my vim experience and just wanted to share that with some of you. It turns out there is a star/asterisk register, which holds the clipboard contents. So you can just press double quote - shift 8 -then p (that's "*p) , and instantly, all your worries about pasting large text in vim just go away.
  Now, there is some fine print that I should let people know. Your vim compiler needs to be built with a "+clipboard" option. And of course, finding out your vim compiler options is not common knowledge. But that's easy to check too - just run "vim --version" and pipe it to grep clipboard, and you can see have this amazing feature builtin.
  Don't take my word for it - try out the star register and just watch how these 3 characters can transform your vim copy-paste experience for large clipboard contents.

Thanks,
Ven

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAEodY64rgQZJVGid9_rz-vEb%3DmwVcx7Kw5jzrXBs9KWWCsp2mA%40mail.gmail.com.

Tuesday, October 8, 2024

Re: (Bug ?) Sometimes { in insert mode triggers normal mode

Hi Tim,

I realized that the issue was due to a wrong keyboard layout.

S.


On Tue, 8 Oct 2024, 2:30 pm Tim Chase, <vim@tim.thechases.com> wrote:
On 2024-10-07 17:11, simo zz wrote:
> I have noticed (on Linux) that pressing `'{' in insert mode, vim/gvim
> sometimes triggers the normal mode: I mean vim goes from insert to
> normal mode.
>
> I do not have any mapping related to '{' in insert mode neither in
> normal mode.

This sounds suspiciously like somehow control+[ is getting pressed
(which sends the same key-code as escape).  Is there any chance you're
holding down control rather than shift when this happens?  If you
log keystrokes at the OS level (such as with one of those used in
screen-casts), does it report control+[ instead of shift+[→escape?
It could also be a keyboard issue where a faulty contact is sending
control-modifier rather than a shift-modifier, so if you can try it with
a second keyboard (if you have a spare USB keyboard or can borrow one
for testing), it might help narrow things down.

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/ZwUl2gh8P7TxL59s%40thechases.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAFvb%3DpZ8y3i8ZiOGmuU0-3N8v5_y%3DTy1VC2EP3B74Ni_6cJTjw%40mail.gmail.com.

Re: (Bug ?) Sometimes { in insert mode triggers normal mode

On 2024-10-07 17:11, simo zz wrote:
> I have noticed (on Linux) that pressing `'{' in insert mode, vim/gvim
> sometimes triggers the normal mode: I mean vim goes from insert to
> normal mode.
>
> I do not have any mapping related to '{' in insert mode neither in
> normal mode.

This sounds suspiciously like somehow control+[ is getting pressed
(which sends the same key-code as escape). Is there any chance you're
holding down control rather than shift when this happens? If you
log keystrokes at the OS level (such as with one of those used in
screen-casts), does it report control+[ instead of shift+[→escape?
It could also be a keyboard issue where a faulty contact is sending
control-modifier rather than a shift-modifier, so if you can try it with
a second keyboard (if you have a spare USB keyboard or can borrow one
for testing), it might help narrow things down.

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/ZwUl2gh8P7TxL59s%40thechases.com.

Monday, October 7, 2024

(Bug ?) Sometimes { in insert mode triggers normal mode

Hello,

I have noticed (on Linux) that pressing `'{' in insert mode, vim/gvim sometimes triggers the normal mode: I mean vim goes from insert to normal mode.

I do not have any mapping related to '{' in insert mode neither in normal mode.

The current version testes is v9.1.0764, but I noticed the problem also with v9.1.0748.Γ§

Cheers,

Simon

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAFvb%3DpZJG-eYc7-hcRRbX_HdRmKW07A98008yLrGANowMZFvJQ%40mail.gmail.com.

Thursday, October 3, 2024

Re: Finding all words

Very good idea. Thanks again.

Salman

On Thu, Oct 3, 2024, 12:09 Tim Chase <vim@tim.thechases.com> wrote:
On 2024-10-03 11:58, Salman Halim wrote:
> >     /.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps/

> something that does the combination thing I was suggesting and time the two
> approaches, but with more than just two words: /quick.*brown\|brown.*quick/
> vs. /.\{-}quick\&.\{-}brown}/

At the cost of some redundancy, you might be able to speed it up a
little bit by requiring that it start with at least one of the words
like

  /\%(\<\%(quick\|brown\|lazy\|jumps\)\>\)\@=\%(.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps\)/

so it won't start looking for the other terms until it's found at
least one of them, cutting out a lot of non-starter cases.

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/Zv7Bt-O8KlBggCtX%40thechases.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CANuxnEeptRdJnWHNSPa2Kprm1By3VBf-_U2g5v%2BCq%2BK-g3Rr1A%40mail.gmail.com.

Re: Finding all words

On 2024-10-03 11:58, Salman Halim wrote:
> > /.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps/

> something that does the combination thing I was suggesting and time the two
> approaches, but with more than just two words: /quick.*brown\|brown.*quick/
> vs. /.\{-}quick\&.\{-}brown}/

At the cost of some redundancy, you might be able to speed it up a
little bit by requiring that it start with at least one of the words
like

/\%(\<\%(quick\|brown\|lazy\|jumps\)\>\)\@=\%(.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps\)/

so it won't start looking for the other terms until it's found at
least one of them, cutting out a lot of non-starter cases.

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/Zv7Bt-O8KlBggCtX%40thechases.com.

Re: Finding all words



On Thu, Oct 3, 2024 at 10:18 AM Tim Chase <vim@tim.thechases.com> wrote:
On 2024-10-03 15:09, Mikhail Velikikh wrote:
> > Is there a way to compose a regular expression in Vim that will find all
> > the words I want, irrespective of the order in which they occur?
>
> I would use something like this:
> \v<(quick|brown|lazy|jumps)>

That finds *any* of the words, not *all* of the words as the OP requested.

While the implementation can often end up slow if you have a large
text or lots of find-them-all terms, you (OP) can use

   :help /\&

to join the conditions like

    /.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps/

-tim

Thank you; that's exactly what I was looking for. It does slow down, though, as you said it might, once I add more words to it. I might write something that does the combination thing I was suggesting and time the two approaches, but with more than just two words: /quick.*brown\|brown.*quick/ vs. /.\{-}quick\&.\{-}brown}/ 

Best regards,

Salman

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CANuxnEcXmK25RhOrXZ9eA0PnogP76DKMr9gsBuD4sgm%2Bw6q_5Q%40mail.gmail.com.

Re: Finding all words

On 2024-10-03 15:09, Mikhail Velikikh wrote:
> > Is there a way to compose a regular expression in Vim that will find all
> > the words I want, irrespective of the order in which they occur?
>
> I would use something like this:
> \v<(quick|brown|lazy|jumps)>

That finds *any* of the words, not *all* of the words as the OP requested.

While the implementation can often end up slow if you have a large
text or lots of find-them-all terms, you (OP) can use

:help /\&

to join the conditions like

/.\{-}quick\&.\{-}brown\&.\{-}lazy\&.\{-}jumps/

-tim





--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/Zv6nnfKqWolaBkMm%40thechases.com.

Re: Finding all words

Hi,

I would use something like this:
\v<(quick|brown|lazy|jumps)>

\v - very magic
< - the beginning of a word
> - the end of a word
(quick|brown|lazy|jumps) - the words to find

Thanks,
Mikhail Velikikh



On Thu, 3 Oct 2024 at 14:51, Salman Halim <salmanhalim@gmail.com> wrote:
Hello,

Is there a way to compose a regular expression in Vim that will find all the words I want, irrespective of the order in which they occur? For example:

Some text...
The quick red fox jumps over the lazy brown dogs.
Some other text...

I want to find 'quick', 'brown', 'lazy' and 'jumps'. I don't know the order in which they occur, so something like 'quick.*brown.*lazy.*jumps' won't work. I'm trying to avoid a complicated/ugly expression that includes all possible orderings like '\%(brown.*lazy\)\|\%(lazy.*brown\)'.

I'm hoping there is a more graceful way to do this already. I'm happy to write a function to convert a sequence of words to an expression, even if it's the 'all combinations' one.

Thank you,

--
 
Salman

I, too, shall something make and glory in the making.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CANuxnEcUM43Z%3DOVF0cPXRGq_12NckWMHZBtdH0S_DpKOFJZUOg%40mail.gmail.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CALe4HpnpJwixWbdeS72jh-oWERq3_pjURDRgGpLsU8FCP6UyZg%40mail.gmail.com.