urxvt.answerbackString: urxvt
! Change font size.
urxvt.perl-lib: .urxvt
-urxvt.perl-ext: font
+urxvt.perl-ext: font,vimselection
urxvt.keysym.M-minus: perl:font:smaller
urxvt.keysym.M-equal: perl:font:bigger
--- /dev/null
+#!/usr/bin/perl
+
+# Hide Vim stuff like marks and numbers from the selection.
+sub on_sel_grab {
+ my ($self) = @_;
+
+ # Assume that the terminal will have been resized.
+ return unless $self->{term}->ncol > 80;
+
+ my $selection = $self->{term}->selection;
+ my @lines = split /\n/, $selection;
+ my @new;
+ my $n = 0;
+
+ foreach my $line (@lines) {
+ # If this is the first line only do the replacement at the beginning.
+ # Subsequent lines are necessarily captured from the first column.
+ unless ($n++) {
+ if (($self->{term}->selection_beg)[1] > 1) {
+ push @new, $line;
+ next;
+ }
+ }
+
+ # Strip signs, numbers (five or eight columns) and non-line squiggles.
+ if ($line =~ /^(. )?(~|[ \d]{5}|[ \d]{8})?/) { $line =~ s/// }
+
+ push @new, $line;
+ }
+
+ # Save the new selection.
+ $selection = join "\n", @new;
+ $self->{term}->selection($selection);
+}