mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-20 19:41:34 +01:00
development/ex-vi: Added support for large terminals.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
ee59266f8f
commit
ab0ffaa245
2 changed files with 51 additions and 2 deletions
|
@ -9,3 +9,25 @@ After installing, either log out & back in, or "source
|
|||
/etc/profile.d/ex-vi.sh". To temporarily disable the scripts, remove
|
||||
their execute bits. Users can always set PATH and MANPATH in their own
|
||||
dotfiles, of course.
|
||||
|
||||
In visual mode (vi or :vi from ex), ex-vi has compiled-in values for
|
||||
the maximum terminal size, in columns and rows. This build will support
|
||||
terminals up to 320x200 characters by default. If you get 'Terminal too
|
||||
wide' errors, make your terminal as large as possible and rebuild ex-vi
|
||||
from within it, with a command like:
|
||||
|
||||
TUBECOLS=$COLUMNS TUBELINES=$LINES ./ex-vi.SlackBuild
|
||||
|
||||
Exceeding the maximum line height just means vi will ignore the extra
|
||||
lines at the bottom of the screen. Note that increasing these values
|
||||
causes vi to use more memory, but on a fairly modern system it shouldn't
|
||||
be too much. If you're building for a memory-poor system (embedded, or old
|
||||
hardware), you could save memory with e.g. TUBECOLS=80 TUBELINES=25 or so.
|
||||
|
||||
If you *really* need to run vi without 'Terminal too wide', you can
|
||||
export e.g. COLUMNS=80 in the environment, and vi will only use part of
|
||||
the terminal. The COLUMNS variable gets reset whenever an X terminal is
|
||||
resized (at least for most X terminal emulators).
|
||||
|
||||
Thanks to zacts on Freenode IRC ##slackware for pointing out the terminal
|
||||
size limitation.
|
||||
|
|
|
@ -6,9 +6,30 @@
|
|||
|
||||
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
||||
|
||||
# 20150331 bkw: build 2
|
||||
# Increase TUBE* constants in config.h to allow for larger terminals.
|
||||
|
||||
# vi has hardcoded terminal size limits of 160 columns and 100 lines.
|
||||
# These days it's not unusual to have a 1920x1080 framenbuffer with 8x16
|
||||
# console font, for 240x67 characters. Increase limits here. Doing so uses
|
||||
# TUBESIZE bytes of memory at startup, and another TUBESIZE bytes every
|
||||
# time you switch from ex mode to visual mode, so let's not get too crazy
|
||||
# with the cheez whiz. The real problem is TUBECOLS (the width): if the
|
||||
# terminal exceeds this, you get 'Terminal too wide' and are stuck in ex
|
||||
# mode. Exceeding TUBELINES just means vi ignores the extra lines at the
|
||||
# bottom of the terminal.
|
||||
|
||||
# Default to 320x200, which would be enough for a 8x16 console font on a
|
||||
# WQXGA 2560x1600 display, or a 2/3-width full-height X terminal on 4K
|
||||
# UHDTV (3840x2160). If I don't make this configurable, someone will
|
||||
# need it to be. So:
|
||||
TUBECOLS=${TUBECOLS:-320}
|
||||
TUBELINES=${TUBELINES:-200}
|
||||
|
||||
# We now return you to your regularly scheduled programming:
|
||||
PRGNAM=ex-vi
|
||||
VERSION=${VERSION:-050325}
|
||||
BUILD=${BUILD:-1}
|
||||
BUILD=${BUILD:-2}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -55,10 +76,16 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# don't install the binary with the sticky bit set. It doesn't do anything
|
||||
# Don't install the binary with the sticky bit set. It doesn't do anything
|
||||
# on Linux, and might set off alarm bells.
|
||||
sed -i 's,-m 1755,-m 755,' Makefile
|
||||
|
||||
# Apologies for the fugly sed code here. It works, though.
|
||||
sed -i -e "/^#define/s,\\(TUBESIZE *\\).*$,\\1 $(( TUBECOLS * TUBELINES ))," \
|
||||
-e "/^#define/s,\\(TUBECOLS *\\).*$,\\1 $TUBECOLS," \
|
||||
-e "/^#define/s,\\(TUBELINES *\\).*$,\\1 $TUBELINES," \
|
||||
config.h
|
||||
|
||||
# To avoid conflicts with Slackware's elvis and/or vim, we install to /opt and
|
||||
# include a login script to set PATH and MANPATH.
|
||||
make all install \
|
||||
|
|
Loading…
Reference in a new issue