Better text editor?

This is not to start a discussion of text editors on Linux - we’ve had a few of those! What I am wondering is whether there exists a simple to learn (eliminates vim and friends, and Emacs) editor with the features I used to take for granted on the Amiga. The ones I am specifically missing are ad hoc recordable (preferably savable) macros, and columnar block cut/copy/paste capabilities. I would settle for macros, as that comes up a lot more often - especially with converting data scraped from websites! Anything out there (preferably free too, not UltraEdit!)?

1 Like

Kate

Kate has macros? Hmmm - how much of the world of KDE comes with it? Do I need to run a VM with KDE just for text editing? :grin:

1 Like

It has scripts, you can’t record macros in it. However, there is no need for recording anything, Kate has advanced tools that replace that.

If you give a concrete example, I can walk you through how to do that efficiently in Kate, probably faster than it takes to record a macro.

ALL of it. Almost. :sweat_smile:

1 Like

What constitutes an advanced tool in this case. I mean, I might want to capture arrow key movements, delete key, enter key, tabs etc to reorganize scraped data, for instance. I just wish CygnusEd had ever made it off Motorola and PowerPC chips… to much assembly involved to even think of throwing logic out the window to enable an Intel-style build :grin:

I hate them…
But when it comes to macros - very hard to beat both.

A little more than that :rofl:

3 Likes
kate
├─knewstuff
│ ├─kio
│ │ ├─solid
│ │ │ ├─qt5-base
│ │ │ │ ├─libjpeg-turbo
│ │ │ │ │ └─glibc
│ │ │ │ │   ├─linux-api-headers provides linux-api-headers>=4.10
│ │ │ │ │   ├─tzdata
│ │ │ │ │   └─filesystem
│ │ │ │ │     └─iana-etc
│ │ │ │ ├─xcb-util-keysyms
│ │ │ │ │ └─libxcb provides libxcb>=1.7
│ │ │ │ │   ├─xcb-proto
│ │ │ │ │   ├─libxdmcp
│ │ │ │ │   │ └─glibc
│ │ │ │ │   └─libxau
│ │ │ │ │     └─glibc
│ │ │ │ ├─xcb-util-renderutil
│ │ │ │ │ └─libxcb provides libxcb>=1.7
│ │ │ │ ├─libglvnd provides libgl
│ │ │ │ │ ├─libxext
│ │ │ │ │ │ └─libx11
│ │ │ │ │ │   ├─libxcb
│ │ │ │ │ │   └─xorgproto
│ │ │ │ │ ├─mesa
│ │ │ │ │ │ ├─libdrm
│ │ │ │ │ │ │ └─libpciaccess
│ │ │ │ │ │ │   └─glibc
│ │ │ │ │ │ ├─wayland
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ ├─libffi
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ ├─expat
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ └─libxml2
│ │ │ │ │ │ │   ├─zlib
│ │ │ │ │ │ │   │ └─glibc
│ │ │ │ │ │ │   ├─readline
│ │ │ │ │ │ │   │ ├─glibc
│ │ │ │ │ │ │   │ ├─ncurses
│ │ │ │ │ │ │   │ │ ├─glibc
│ │ │ │ │ │ │   │ │ └─gcc-libs
│ │ │ │ │ │ │   │ │   └─glibc provides glibc>=2.27
│ │ │ │ │ │ │   │ └─ncurses provides libncursesw.so=6-64
│ │ │ │ │ │ │   ├─ncurses
│ │ │ │ │ │ │   ├─xz
│ │ │ │ │ │ │   │ └─bash provides sh
│ │ │ │ │ │ │   │   ├─readline
│ │ │ │ │ │ │   │   ├─readline provides libreadline.so=8-64
│ │ │ │ │ │ │   │   ├─glibc
│ │ │ │ │ │ │   │   └─ncurses
│ │ │ │ │ │ │   └─icu
│ │ │ │ │ │ │     ├─gcc-libs
│ │ │ │ │ │ │     └─bash provides sh
│ │ │ │ │ │ ├─libxxf86vm
│ │ │ │ │ │ │ └─libxext
│ │ │ │ │ │ ├─libxdamage
│ │ │ │ │ │ │ └─libxfixes
│ │ │ │ │ │ │   └─libx11
│ │ │ │ │ │ ├─libxshmfence
│ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ ├─libelf
│ │ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ │ ├─bzip2 provides libbz2.so=1.0-64
│ │ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ │ └─bash provides sh
│ │ │ │ │ │ │ ├─curl provides libcurl.so=4-64
│ │ │ │ │ │ │ │ ├─ca-certificates
│ │ │ │ │ │ │ │ │ └─ca-certificates-mozilla
│ │ │ │ │ │ │ │ │   └─ca-certificates-utils provides ca-certificates-utils>=20181109-3
│ │ │ │ │ │ │ │ │     ├─bash
│ │ │ │ │ │ │ │ │     ├─coreutils
│ │ │ │ │ │ │ │ │     │ ├─glibc
│ │ │ │ │ │ │ │ │     │ ├─acl
│ │ │ │ │ │ │ │ │     │ │ ├─attr
│ │ │ │ │ │ │ │ │     │ │ │ └─glibc
│ │ │ │ │ │ │ │ │     │ │ └─attr provides libattr.so
│ │ │ │ │ │ │ │ │     │ ├─attr
│ │ │ │ │ │ │ │ │     │ ├─gmp
│ │ │ │ │ │ │ │ │     │ │ ├─gcc-libs
│ │ │ │ │ │ │ │ │     │ │ └─bash provides sh
│ │ │ │ │ │ │ │ │     │ ├─libcap
│ │ │ │ │ │ │ │ │     │ │ ├─glibc
│ │ │ │ │ │ │ │ │     │ │ └─pam
│ │ │ │ │ │ │ │ │     │ │   ├─glibc
│ │ │ │ │ │ │ │ │     │ │   ├─libtirpc
│ │ │ │ │ │ │ │ │     │ │   │ └─krb5
│ │ │ │ │ │ │ │ │     │ │   │   ├─glibc
│ │ │ │ │ │ │ │ │     │ │   │   ├─e2fsprogs
│ │ │ │ │ │ │ │ │     │ │   │   │ ├─bash provides sh
│ │ │ │ │ │ │ │ │     │ │   │   │ └─util-linux-libs
│ │ │ │ │ │ │ │ │     │ │   │   ├─e2fsprogs provides libss.so=2-64
│ │ │ │ │ │ │ │ │     │ │   │   ├─e2fsprogs provides libcom_err.so=2-64
│ │ │ │ │ │ │ │ │     │ │   │   ├─libldap
│ │ │ │ │ │ │ │ │     │ │   │   │ ├─libsasl
│ │ │ │ │ │ │ │ │     │ │   │   │ │ └─openssl
│ │ │ │ │ │ │ │ │     │ │   │   │ │   └─glibc
│ │ │ │ │ │ │ │ │     │ │   │   │ └─e2fsprogs
│ │ │ │ │ │ │ │ │     │ │   │   └─keyutils
│ │ │ │ │ │ │ │ │     │ │   │     ├─glibc
│ │ │ │ │ │ │ │ │     │ │   │     └─bash provides sh
│ │ │ │ │ │ │ │ │     │ │   ├─pambase
│ │ │ │ │ │ │ │ │     │ │   ├─audit
│ │ │ │ │ │ │ │ │     │ │   │ ├─glibc
│ │ │ │ │ │ │ │ │     │ │   │ ├─krb5
│ │ │ │ │ │ │ │ │     │ │   │ ├─krb5 provides libkrb5.so=3-64
│ │ │ │ │ │ │ │ │     │ │   │ ├─krb5 provides libgssapi_krb5.so=2-64
│ │ │ │ │ │ │ │ │     │ │   │ ├─libcap-ng
│ │ │ │ │ │ │ │ │     │ │   │ │ └─glibc
│ │ │ │ │ │ │ │ │     │ │   │ └─libcap-ng provides libcap-ng.so=0-64
│ │ │ │ │ │ │ │ │     │ │   ├─audit provides libaudit.so=1-64
│ │ │ │ │ │ │ │ │     │ │   ├─libxcrypt
│ │ │ │ │ │ │ │ │     │ │   │ └─glibc
│ │ │ │ │ │ │ │ │     │ │   └─libxcrypt provides libcrypt.so=2-64
│ │ │ │ │ │ │ │ │     │ └─openssl
│ │ │ │ │ │ │ │ │     ├─findutils
│ │ │ │ │ │ │ │ │     │ ├─glibc
│ │ │ │ │ │ │ │ │     │ └─bash provides sh
│ │ │ │ │ │ │ │ │     └─p11-kit provides p11-kit>=0.24.0
│ │ │ │ │ │ │ │ │       ├─libp11-kit provides libp11-kit=0.24.1-1
│ │ │ │ │ │ │ │ │       │ ├─glibc
│ │ │ │ │ │ │ │ │       │ ├─libtasn1
│ │ │ │ │ │ │ │ │       │ │ └─glibc
│ │ │ │ │ │ │ │ │       │ └─libffi
│ │ │ │ │ │ │ │ │       ├─coreutils
│ │ │ │ │ │ │ │ │       ├─libp11-kit provides libp11-kit.so=0-64
│ │ │ │ │ │ │ │ │       └─systemd-libs provides libsystemd.so=0-64
│ │ │ │ │ │ │ │ │         ├─glibc
│ │ │ │ │ │ │ │ │         ├─libcap
│ │ │ │ │ │ │ │ │         ├─libgcrypt
│ │ │ │ │ │ │ │ │         │ └─libgpg-error
│ │ │ │ │ │ │ │ │         │   ├─glibc
│ │ │ │ │ │ │ │ │         │   └─bash provides sh
│ │ │ │ │ │ │ │ │         ├─libp11-kit
│ │ │ │ │ │ │ │ │         ├─lz4
│ │ │ │ │ │ │ │ │         │ └─glibc
│ │ │ │ │ │ │ │ │         ├─xz
│ │ │ │ │ │ │ │ │         └─zstd
│ │ │ │ │ │ │ │ │           ├─glibc
│ │ │ │ │ │ │ │ │           ├─gcc-libs
│ │ │ │ │ │ │ │ │           ├─zlib
│ │ │ │ │ │ │ │ │           ├─xz
│ │ │ │ │ │ │ │ │           └─lz4
│ │ │ │ │ │ │ │ ├─brotli
│ │ │ │ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ │ ├─brotli provides libbrotlidec.so=1-64
│ │ │ │ │ │ │ │ ├─krb5
│ │ │ │ │ │ │ │ ├─krb5 provides libgssapi_krb5.so=2-64
│ │ │ │ │ │ │ │ ├─libidn2
│ │ │ │ │ │ │ │ │ └─libunistring
│ │ │ │ │ │ │ │ │   └─glibc
│ │ │ │ │ │ │ │ ├─libidn2 provides libidn2.so=0-64
│ │ │ │ │ │ │ │ ├─libnghttp2
│ │ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ │ ├─libpsl
│ │ │ │ │ │ │ │ │ ├─libidn2
│ │ │ │ │ │ │ │ │ ├─libidn2 provides libidn2.so=0-64
│ │ │ │ │ │ │ │ │ └─libunistring
│ │ │ │ │ │ │ │ ├─libpsl provides libpsl.so=5-64
│ │ │ │ │ │ │ │ ├─libssh2
│ │ │ │ │ │ │ │ │ ├─openssl
│ │ │ │ │ │ │ │ │ └─zlib
│ │ │ │ │ │ │ │ ├─libssh2 provides libssh2.so=1-64
│ │ │ │ │ │ │ │ ├─openssl
│ │ │ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ │ │ ├─zstd
│ │ │ │ │ │ │ │ └─zstd provides libzstd.so=1-64
│ │ │ │ │ │ │ ├─xz
│ │ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ │ └─zstd
│ │ │ │ │ │ ├─libomxil-bellagio
│ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ ├─libunwind
│ │ │ │ │ │ │ ├─xz
│ │ │ │ │ │ │ └─zlib
│ │ │ │ │ │ ├─llvm-libs
│ │ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ │ ├─libffi
│ │ │ │ │ │ │ ├─libedit
│ │ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ │ ├─ncurses
│ │ │ │ │ │ │ │ └─ncurses provides libncursesw.so=6-64
│ │ │ │ │ │ │ ├─ncurses
│ │ │ │ │ │ │ └─libxml2
│ │ │ │ │ │ ├─lm_sensors
│ │ │ │ │ │ ├─libglvnd
│ │ │ │ │ │ ├─zstd
│ │ │ │ │ │ ├─vulkan-icd-loader
│ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ ├─lm_sensors provides libsensors.so=5-64
│ │ │ │ │ │ ├─expat provides libexpat.so=1-64
│ │ │ │ │ │ └─vulkan-icd-loader provides libvulkan.so=1-64
│ │ │ │ │ └─mesa provides opengl-driver
│ │ │ │ ├─fontconfig
│ │ │ │ │ ├─expat provides libexpat.so=1-64
│ │ │ │ │ └─freetype2 provides libfreetype.so=6-64
│ │ │ │ │   ├─zlib
│ │ │ │ │   ├─bzip2
│ │ │ │ │   ├─bash provides sh
│ │ │ │ │   ├─libpng
│ │ │ │ │   │ ├─zlib
│ │ │ │ │   │ └─bash provides sh
│ │ │ │ │   ├─harfbuzz
│ │ │ │ │   │ ├─glib2
│ │ │ │ │   │ │ ├─pcre
│ │ │ │ │   │ │ │ ├─gcc-libs
│ │ │ │ │   │ │ │ ├─readline
│ │ │ │ │   │ │ │ ├─zlib
│ │ │ │ │   │ │ │ ├─bzip2
│ │ │ │ │   │ │ │ └─bash
│ │ │ │ │   │ │ ├─libffi
│ │ │ │ │   │ │ ├─util-linux-libs
│ │ │ │ │   │ │ ├─zlib
│ │ │ │ │   │ │ ├─libsysprof-capture
│ │ │ │ │   │ │ ├─util-linux-libs provides libmount.so=1-64
│ │ │ │ │   │ │ └─libffi provides libffi.so=8-64
│ │ │ │ │   │ ├─freetype2
│ │ │ │ │   │ ├─graphite
│ │ │ │ │   │ │ └─gcc-libs
│ │ │ │ │   │ ├─glib2 provides libglib-2.0.so=0-64
│ │ │ │ │   │ ├─freetype2 provides libfreetype.so=6-64
│ │ │ │ │   │ └─glib2 provides libgobject-2.0.so=0-64
│ │ │ │ │   └─brotli
│ │ │ │ ├─xdg-utils
│ │ │ │ │ ├─bash provides sh
│ │ │ │ │ ├─which
│ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ └─bash
│ │ │ │ │ ├─file
│ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ ├─xz
│ │ │ │ │ │ ├─bzip2
│ │ │ │ │ │ ├─libseccomp
│ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ └─libseccomp provides libseccomp.so=2-64
│ │ │ │ │ ├─xorg-xset
│ │ │ │ │ │ └─libxmu
│ │ │ │ │ │   ├─libxext
│ │ │ │ │ │   └─libxt
│ │ │ │ │ │     ├─libsm
│ │ │ │ │ │     │ ├─libice
│ │ │ │ │ │     │ │ └─glibc
│ │ │ │ │ │     │ └─util-linux-libs provides libutil-linux
│ │ │ │ │ │     └─libx11
│ │ │ │ │ └─xorg-xprop
│ │ │ │ │   └─libx11
│ │ │ │ ├─shared-mime-info
│ │ │ │ │ ├─libxml2
│ │ │ │ │ └─glib2
│ │ │ │ ├─xcb-util-wm
│ │ │ │ │ └─libxcb provides libxcb>=1.7
│ │ │ │ ├─libxrender
│ │ │ │ │ └─libx11
│ │ │ │ ├─libxi
│ │ │ │ │ └─libxext
│ │ │ │ ├─sqlite
│ │ │ │ │ ├─readline
│ │ │ │ │ └─zlib
│ │ │ │ ├─xcb-util-image
│ │ │ │ │ ├─libxcb provides libxcb>=1.7
│ │ │ │ │ └─xcb-util provides xcb-util>=0.3.9
│ │ │ │ │   └─libxcb provides libxcb>=1.7
│ │ │ │ ├─mesa
│ │ │ │ ├─tslib
│ │ │ │ │ └─glibc
│ │ │ │ ├─libinput
│ │ │ │ │ ├─mtdev
│ │ │ │ │ │ └─glibc
│ │ │ │ │ ├─systemd
│ │ │ │ │ │ ├─acl
│ │ │ │ │ │ ├─acl provides libacl.so=1-64
│ │ │ │ │ │ ├─bash
│ │ │ │ │ │ ├─cryptsetup
│ │ │ │ │ │ │ ├─device-mapper
│ │ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ │ ├─systemd-libs
│ │ │ │ │ │ │ │ └─systemd-libs provides libudev.so=1-64
│ │ │ │ │ │ │ ├─device-mapper provides libdevmapper.so=1.02-64
│ │ │ │ │ │ │ ├─openssl
│ │ │ │ │ │ │ ├─popt
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ ├─util-linux-libs
│ │ │ │ │ │ │ ├─util-linux-libs provides libuuid.so=1-64
│ │ │ │ │ │ │ ├─json-c
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ ├─json-c provides libjson-c.so=5-64
│ │ │ │ │ │ │ ├─argon2
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ └─argon2 provides libargon2.so=1-64
│ │ │ │ │ │ ├─cryptsetup provides libcryptsetup.so=12-64
│ │ │ │ │ │ ├─dbus
│ │ │ │ │ │ │ ├─systemd-libs
│ │ │ │ │ │ │ ├─expat
│ │ │ │ │ │ │ ├─audit
│ │ │ │ │ │ │ ├─systemd-libs provides libsystemd.so=0-64
│ │ │ │ │ │ │ └─audit provides libaudit.so=1-64
│ │ │ │ │ │ ├─iptables
│ │ │ │ │ │ │ ├─libnftnl
│ │ │ │ │ │ │ │ └─libmnl
│ │ │ │ │ │ │ │   └─glibc
│ │ │ │ │ │ │ ├─libpcap
│ │ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ │ ├─libnl
│ │ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ │ ├─bash provides sh
│ │ │ │ │ │ │ │ └─dbus provides libdbus-1.so=3-64
│ │ │ │ │ │ │ ├─libnfnetlink
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ ├─libnetfilter_conntrack
│ │ │ │ │ │ │ │ ├─libnfnetlink
│ │ │ │ │ │ │ │ └─libmnl
│ │ │ │ │ │ │ └─bash
│ │ │ │ │ │ ├─kbd
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ └─pam
│ │ │ │ │ │ ├─kmod
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ │ ├─openssl
│ │ │ │ │ │ │ ├─xz
│ │ │ │ │ │ │ └─zstd
│ │ │ │ │ │ ├─kmod provides libkmod.so=2-64
│ │ │ │ │ │ ├─hwdata
│ │ │ │ │ │ ├─libcap
│ │ │ │ │ │ ├─libcap provides libcap.so=2-64
│ │ │ │ │ │ ├─libgcrypt
│ │ │ │ │ │ ├─libxcrypt
│ │ │ │ │ │ ├─libxcrypt provides libcrypt.so=2-64
│ │ │ │ │ │ ├─systemd-libs
│ │ │ │ │ │ ├─libidn2
│ │ │ │ │ │ ├─lz4
│ │ │ │ │ │ ├─pam
│ │ │ │ │ │ ├─libelf
│ │ │ │ │ │ ├─libseccomp
│ │ │ │ │ │ ├─libseccomp provides libseccomp.so=2-64
│ │ │ │ │ │ ├─util-linux
│ │ │ │ │ │ │ ├─pam
│ │ │ │ │ │ │ ├─shadow
│ │ │ │ │ │ │ │ ├─pam
│ │ │ │ │ │ │ │ ├─acl
│ │ │ │ │ │ │ │ ├─acl provides libacl.so=1-64
│ │ │ │ │ │ │ │ ├─audit
│ │ │ │ │ │ │ │ ├─audit provides libaudit.so=1-64
│ │ │ │ │ │ │ │ ├─libcap-ng
│ │ │ │ │ │ │ │ ├─libcap-ng provides libcap-ng.so
│ │ │ │ │ │ │ │ ├─libxcrypt
│ │ │ │ │ │ │ │ └─libxcrypt provides libcrypt.so=2-64
│ │ │ │ │ │ │ ├─coreutils
│ │ │ │ │ │ │ ├─systemd-libs
│ │ │ │ │ │ │ ├─systemd-libs provides libsystemd.so=0-64
│ │ │ │ │ │ │ ├─systemd-libs provides libudev.so=1-64
│ │ │ │ │ │ │ ├─libcap-ng
│ │ │ │ │ │ │ ├─libxcrypt
│ │ │ │ │ │ │ ├─libxcrypt provides libcrypt.so=2-64
│ │ │ │ │ │ │ ├─util-linux-libs
│ │ │ │ │ │ │ ├─file provides libmagic.so=1-64
│ │ │ │ │ │ │ └─ncurses provides libncursesw.so=6-64
│ │ │ │ │ │ ├─util-linux-libs provides libblkid.so=1-64
│ │ │ │ │ │ ├─util-linux-libs provides libmount.so=1-64
│ │ │ │ │ │ ├─xz
│ │ │ │ │ │ ├─pcre2
│ │ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ │ ├─readline
│ │ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ │ ├─bzip2
│ │ │ │ │ │ │ └─bash
│ │ │ │ │ │ ├─audit
│ │ │ │ │ │ ├─audit provides libaudit.so=1-64
│ │ │ │ │ │ ├─libp11-kit
│ │ │ │ │ │ ├─libp11-kit provides libp11-kit.so=0-64
│ │ │ │ │ │ └─openssl
│ │ │ │ │ ├─libevdev
│ │ │ │ │ │ └─glibc
│ │ │ │ │ └─libwacom
│ │ │ │ │   ├─glib2
│ │ │ │ │   ├─systemd
│ │ │ │ │   └─libgudev
│ │ │ │ │     ├─systemd
│ │ │ │ │     ├─glib2
│ │ │ │ │     ├─glib2 provides libglib-2.0.so=0-64
│ │ │ │ │     ├─glib2 provides libgobject-2.0.so=0-64
│ │ │ │ │     └─systemd-libs provides libudev.so=1-64
│ │ │ │ ├─libxkbcommon-x11
│ │ │ │ │ ├─libxkbcommon
│ │ │ │ │ │ ├─xkeyboard-config
│ │ │ │ │ │ └─libxml2
│ │ │ │ │ ├─libxkbcommon provides libxkbcommon.so=0-64
│ │ │ │ │ └─libxcb
│ │ │ │ ├─libproxy
│ │ │ │ │ ├─gcc-libs
│ │ │ │ │ ├─glib2
│ │ │ │ │ └─dbus
│ │ │ │ ├─libcups
│ │ │ │ │ ├─gnutls
│ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ ├─libtasn1
│ │ │ │ │ │ ├─readline
│ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ ├─nettle
│ │ │ │ │ │ │ └─gmp
│ │ │ │ │ │ ├─p11-kit
│ │ │ │ │ │ ├─libidn2
│ │ │ │ │ │ ├─libidn2 provides libidn2.so=0-64
│ │ │ │ │ │ └─libunistring
│ │ │ │ │ ├─libtiff provides libtiff>=4.0.0
│ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ ├─libjpeg-turbo provides libjpeg
│ │ │ │ │ │ ├─libjpeg-turbo provides libjpeg.so=8-64
│ │ │ │ │ │ ├─zlib
│ │ │ │ │ │ ├─xz
│ │ │ │ │ │ └─zstd
│ │ │ │ │ ├─libpng provides libpng>=1.5.7
│ │ │ │ │ ├─krb5
│ │ │ │ │ ├─avahi
│ │ │ │ │ │ ├─expat
│ │ │ │ │ │ ├─libdaemon
│ │ │ │ │ │ ├─glib2
│ │ │ │ │ │ ├─libcap
│ │ │ │ │ │ ├─gdbm
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ ├─bash provides sh
│ │ │ │ │ │ │ └─readline provides libreadline.so=8-64
│ │ │ │ │ │ ├─dbus
│ │ │ │ │ │ └─dbus provides libdbus-1.so=3-64
│ │ │ │ │ ├─libusb
│ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ └─systemd-libs provides libudev.so=1-64
│ │ │ │ │ └─libxcrypt
│ │ │ │ ├─double-conversion
│ │ │ │ │ └─gcc-libs
│ │ │ │ ├─md4c
│ │ │ │ │ └─glibc
│ │ │ │ └─qt5-translations
│ │ │ ├─media-player-info
│ │ │ │ └─systemd
│ │ │ ├─upower
│ │ │ │ ├─systemd
│ │ │ │ ├─libimobiledevice
│ │ │ │ │ ├─libusbmuxd
│ │ │ │ │ │ ├─libusb
│ │ │ │ │ │ └─libplist
│ │ │ │ │ │   └─glib2
│ │ │ │ │ ├─usbmuxd
│ │ │ │ │ │ └─libimobiledevice
│ │ │ │ │ └─gnutls
│ │ │ │ ├─libgudev
│ │ │ │ ├─glib2 provides libglib-2.0.so=0-64
│ │ │ │ ├─glib2 provides libgobject-2.0.so=0-64
│ │ │ │ └─glib2 provides libgio-2.0.so=0-64
│ │ │ └─udisks2
│ │ │   ├─polkit
│ │ │   │ ├─glib2
│ │ │   │ ├─pam
│ │ │   │ ├─expat
│ │ │   │ ├─systemd
│ │ │   │ └─js78
│ │ │   │   ├─gcc-libs
│ │ │   │   ├─readline
│ │ │   │   ├─zlib
│ │ │   │   └─bash provides sh
│ │ │   ├─libatasmart
│ │ │   │ └─systemd-libs
│ │ │   ├─libgudev
│ │ │   └─libblockdev
│ │ │     ├─btrfs-progs
│ │ │     │ ├─glibc
│ │ │     │ ├─util-linux-libs
│ │ │     │ ├─lzo
│ │ │     │ │ └─glibc
│ │ │     │ ├─zlib
│ │ │     │ ├─zstd
│ │ │     │ └─libgcrypt
│ │ │     ├─dosfstools
│ │ │     │ └─glibc
│ │ │     ├─dmraid
│ │ │     │ └─device-mapper provides device-mapper>=2.0.54
│ │ │     ├─gptfdisk
│ │ │     │ ├─gcc-libs
│ │ │     │ ├─popt
│ │ │     │ ├─util-linux-libs provides libuuid.so=1-64
│ │ │     │ └─ncurses provides libncursesw.so=6-64
│ │ │     ├─libbytesize
│ │ │     │ ├─mpfr
│ │ │     │ │ ├─glibc
│ │ │     │ │ └─gmp
│ │ │     │ └─pcre2
│ │ │     ├─lvm2
│ │ │     │ ├─bash
│ │ │     │ ├─device-mapper provides device-mapper>=2.03.15
│ │ │     │ ├─systemd-libs
│ │ │     │ ├─systemd-libs provides libudev.so=1-64
│ │ │     │ ├─util-linux-libs
│ │ │     │ ├─util-linux-libs provides libblkid.so=1-64
│ │ │     │ ├─readline
│ │ │     │ ├─readline provides libreadline.so=8-64
│ │ │     │ └─thin-provisioning-tools
│ │ │     │   ├─expat
│ │ │     │   ├─gcc-libs
│ │ │     │   └─libaio
│ │ │     ├─mdadm
│ │ │     │ ├─glibc
│ │ │     │ └─systemd
│ │ │     ├─ndctl
│ │ │     │ ├─iniparser
│ │ │     │ │ └─glibc
│ │ │     │ ├─json-c
│ │ │     │ ├─keyutils
│ │ │     │ ├─kmod
│ │ │     │ ├─systemd-libs
│ │ │     │ └─util-linux-libs
│ │ │     ├─parted
│ │ │     │ ├─device-mapper
│ │ │     │ └─util-linux-libs
│ │ │     ├─volume_key
│ │ │     │ ├─cryptsetup
│ │ │     │ ├─nss
│ │ │     │ │ ├─nspr
│ │ │     │ │ │ ├─glibc
│ │ │     │ │ │ └─bash provides sh
│ │ │     │ │ ├─sqlite
│ │ │     │ │ ├─zlib
│ │ │     │ │ ├─bash provides sh
│ │ │     │ │ └─p11-kit provides p11-kit>=0.23.19
│ │ │     │ └─gpgme
│ │ │     │   ├─libgpg-error
│ │ │     │   └─gnupg provides gnupg>=2
│ │ │     │     ├─npth
│ │ │     │     │ ├─glibc
│ │ │     │     │ └─bash provides sh
│ │ │     │     ├─libgpg-error
│ │ │     │     ├─libgcrypt
│ │ │     │     ├─libksba
│ │ │     │     │ ├─bash
│ │ │     │     │ ├─libgpg-error
│ │ │     │     │ └─glibc
│ │ │     │     ├─libassuan
│ │ │     │     │ ├─glibc
│ │ │     │     │ └─libgpg-error
│ │ │     │     ├─pinentry
│ │ │     │     │ ├─glibc
│ │ │     │     │ ├─ncurses
│ │ │     │     │ ├─libcap
│ │ │     │     │ ├─libassuan
│ │ │     │     │ ├─libsecret
│ │ │     │     │ │ ├─glib2
│ │ │     │     │ │ ├─libgcrypt
│ │ │     │     │ │ └─tpm2-tss
│ │ │     │     │ │   ├─curl
│ │ │     │     │ │   ├─json-c
│ │ │     │     │ │   ├─openssl
│ │ │     │     │ │   └─json-c provides libjson-c.so=5-64
│ │ │     │     │ ├─glib2
│ │ │     │     │ ├─libsecret provides libsecret-1.so=0-64
│ │ │     │     │ ├─libcap provides libcap.so=2-64
│ │ │     │     │ ├─ncurses provides libncursesw.so=6-64
│ │ │     │     │ ├─libassuan provides libassuan.so=0-64
│ │ │     │     │ └─glib2 provides libglib-2.0.so=0-64
│ │ │     │     ├─bzip2
│ │ │     │     ├─bzip2 provides libbz2.so=1.0-64
│ │ │     │     ├─readline
│ │ │     │     ├─readline provides libreadline.so=8-64
│ │ │     │     ├─gnutls
│ │ │     │     ├─sqlite
│ │ │     │     ├─zlib
│ │ │     │     └─glibc
│ │ │     ├─xfsprogs
│ │ │     │ ├─bash provides sh
│ │ │     │ ├─util-linux-libs
│ │ │     │ ├─icu
│ │ │     │ ├─device-mapper
│ │ │     │ ├─libinih
│ │ │     │ │ ├─gcc-libs
│ │ │     │ │ └─glibc
│ │ │     │ └─liburcu
│ │ │     ├─kmod
│ │ │     └─libyaml
│ │ ├─kjobwidgets
│ │ │ ├─kcoreaddons
│ │ │ │ └─qt5-base
│ │ │ ├─kwidgetsaddons
│ │ │ │ └─qt5-base
│ │ │ └─qt5-x11extras
│ │ │   └─qt5-base
│ │ ├─kbookmarks
│ │ │ └─kxmlgui
│ │ │   ├─kglobalaccel
│ │ │   │ ├─kdbusaddons
│ │ │   │ │ └─qt5-x11extras
│ │ │   │ ├─kconfig
│ │ │   │ │ └─qt5-base
│ │ │   │ └─kcrash
│ │ │   │   ├─kcoreaddons
│ │ │   │   └─kwindowsystem
│ │ │   │     └─qt5-x11extras
│ │ │   └─kiconthemes
│ │ │     ├─qt5-svg
│ │ │     │ └─qt5-base
│ │ │     ├─kconfigwidgets
│ │ │     │ ├─kauth
│ │ │     │ │ ├─kcoreaddons
│ │ │     │ │ └─polkit-qt5
│ │ │     │ │   ├─polkit
│ │ │     │ │   └─qt5-base
│ │ │     │ ├─kcodecs
│ │ │     │ │ └─qt5-base
│ │ │     │ ├─kconfig
│ │ │     │ ├─kguiaddons
│ │ │     │ │ ├─qt5-x11extras
│ │ │     │ │ └─qt5-wayland
│ │ │     │ │   ├─qt5-declarative
│ │ │     │ │   │ └─qt5-base
│ │ │     │ │   └─libxcomposite
│ │ │     │ │     └─libxfixes
│ │ │     │ ├─ki18n
│ │ │     │ │ ├─qt5-declarative
│ │ │     │ │ └─iso-codes
│ │ │     │ └─kwidgetsaddons
│ │ │     ├─kitemviews
│ │ │     │ └─qt5-base
│ │ │     └─karchive
│ │ │       └─qt5-base
│ │ ├─libxslt
│ │ │ ├─libxml2
│ │ │ └─libgcrypt
│ │ ├─kwallet
│ │ │ ├─knotifications
│ │ │ │ ├─libcanberra
│ │ │ │ │ ├─libvorbis
│ │ │ │ │ │ └─libogg provides libogg.so=0-64
│ │ │ │ │ │   └─glibc
│ │ │ │ │ ├─libtool provides libltdl
│ │ │ │ │ │ ├─bash provides sh
│ │ │ │ │ │ ├─tar
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ ├─acl
│ │ │ │ │ │ │ └─attr
│ │ │ │ │ │ └─glibc
│ │ │ │ │ ├─alsa-lib
│ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ ├─alsa-topology-conf
│ │ │ │ │ │ └─alsa-ucm-conf
│ │ │ │ │ ├─libpulse
│ │ │ │ │ │ ├─dbus
│ │ │ │ │ │ ├─libasyncns
│ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ ├─libcap
│ │ │ │ │ │ ├─libxcb
│ │ │ │ │ │ ├─libsm
│ │ │ │ │ │ ├─libsndfile
│ │ │ │ │ │ │ ├─glibc
│ │ │ │ │ │ │ ├─opus
│ │ │ │ │ │ │ │ └─glibc
│ │ │ │ │ │ │ ├─speex
│ │ │ │ │ │ │ │ ├─libogg
│ │ │ │ │ │ │ │ └─speexdsp
│ │ │ │ │ │ │ │   └─glibc
│ │ │ │ │ │ │ ├─flac provides libFLAC.so=8-64
│ │ │ │ │ │ │ │ ├─gcc-libs
│ │ │ │ │ │ │ │ └─libogg
│ │ │ │ │ │ │ ├─libogg provides libogg.so=0-64
│ │ │ │ │ │ │ ├─libvorbis provides libvorbis.so=0-64
│ │ │ │ │ │ │ └─libvorbis provides libvorbisenc.so=2-64
│ │ │ │ │ │ └─systemd
│ │ │ │ │ ├─tdb
│ │ │ │ │ │ └─glibc
│ │ │ │ │ └─sound-theme-freedesktop
│ │ │ │ ├─libdbusmenu-qt5
│ │ │ │ │ └─qt5-base
│ │ │ │ ├─kwindowsystem
│ │ │ │ ├─kconfig
│ │ │ │ ├─kcoreaddons
│ │ │ │ ├─qt5-speech
│ │ │ │ │ └─qt5-multimedia
│ │ │ │ │   ├─qt5-base
│ │ │ │ │   ├─gst-plugins-base
│ │ │ │ │   │ ├─gst-plugins-base-libs provides gst-plugins-base-libs=1.20.1
│ │ │ │ │   │ │ ├─gstreamer provides gstreamer=1.20.1
│ │ │ │ │   │ │ │ ├─libxml2
│ │ │ │ │   │ │ │ ├─glib2
│ │ │ │ │   │ │ │ ├─libunwind
│ │ │ │ │   │ │ │ ├─libcap
│ │ │ │ │   │ │ │ └─libelf
│ │ │ │ │   │ │ ├─orc
│ │ │ │ │   │ │ │ └─glibc
│ │ │ │ │   │ │ ├─libxv
│ │ │ │ │   │ │ │ └─libxext
│ │ │ │ │   │ │ ├─iso-codes
│ │ │ │ │   │ │ ├─libgudev
│ │ │ │ │   │ │ ├─libglvnd provides libgl
│ │ │ │ │   │ │ └─mesa
│ │ │ │ │   │ ├─alsa-lib
│ │ │ │ │   │ ├─cdparanoia
│ │ │ │ │   │ │ └─glibc
│ │ │ │ │   │ ├─libvisual
│ │ │ │ │   │ │ └─glibc
│ │ │ │ │   │ ├─libvorbis
│ │ │ │ │   │ ├─libtheora
│ │ │ │ │   │ │ └─libogg
│ │ │ │ │   │ ├─pango
│ │ │ │ │   │ │ ├─libthai
│ │ │ │ │   │ │ │ └─libdatrie
│ │ │ │ │   │ │ │   └─glibc
│ │ │ │ │   │ │ ├─cairo
│ │ │ │ │   │ │ │ ├─lzo
│ │ │ │ │   │ │ │ ├─zlib
│ │ │ │ │   │ │ │ ├─libpng
│ │ │ │ │   │ │ │ ├─fontconfig
│ │ │ │ │   │ │ │ ├─freetype2
│ │ │ │ │   │ │ │ ├─libx11
│ │ │ │ │   │ │ │ ├─libxext
│ │ │ │ │   │ │ │ ├─libxrender
│ │ │ │ │   │ │ │ ├─libxcb
│ │ │ │ │   │ │ │ ├─glib2
│ │ │ │ │   │ │ │ └─pixman
│ │ │ │ │   │ │ │   └─glibc
│ │ │ │ │   │ │ ├─libxft
│ │ │ │ │   │ │ │ ├─fontconfig
│ │ │ │ │   │ │ │ └─libxrender
│ │ │ │ │   │ │ ├─harfbuzz
│ │ │ │ │   │ │ └─fribidi
│ │ │ │ │   │ │   └─glibc
│ │ │ │ │   │ ├─opus
│ │ │ │ │   │ ├─graphene
│ │ │ │ │   │ │ ├─glib2 provides libglib-2.0.so=0-64
│ │ │ │ │   │ │ └─glib2 provides libgobject-2.0.so=0-64
│ │ │ │ │   │ ├─libpng
│ │ │ │ │   │ └─libjpeg-turbo provides libjpeg
│ │ │ │ │   ├─libpulse
│ │ │ │ │   └─openal
│ │ │ │ │     └─gcc-libs
│ │ │ │ └─libxtst
│ │ │ │   ├─libxext
│ │ │ │   ├─libxi
│ │ │ │   └─libxfixes
│ │ │ ├─kiconthemes
│ │ │ ├─kservice
│ │ │ │ ├─ki18n
│ │ │ │ ├─kconfig
│ │ │ │ ├─kdbusaddons
│ │ │ │ ├─kconfig
│ │ │ │ └─kcoreaddons
│ │ │ └─gpgme
│ │ ├─ktextwidgets
│ │ │ ├─kcompletion
│ │ │ │ ├─kwidgetsaddons
│ │ │ │ └─kconfig
│ │ │ ├─kconfigwidgets
│ │ │ ├─sonnet
│ │ │ │ └─qt5-base
│ │ │ └─qt5-speech
│ │ └─kded
│ │   ├─kservice
│ │   └─kcrash
│ ├─kpackage
│ │ ├─karchive
│ │ ├─ki18n
│ │ └─kcoreaddons
│ ├─attica
│ │ └─qt5-base
│ └─syndication
│   └─kcodecs
├─ktexteditor
│ ├─kparts
│ │ └─kio
│ ├─syntax-highlighting
│ │ └─qt5-base
│ └─editorconfig-core-c
│   └─pcre2
├─kactivities
│ ├─kcoreaddons
│ ├─kconfig
│ └─kwindowsystem
├─kuserfeedback
│ └─qt5-base
└─hicolor-icon-theme

It’s the best text editor in all of creation, though. And it’s half of the reasons why I use KDE, the other half being Konsole.

3 Likes

Emacs and vim (and friends) are both ancient (in computer years) editors, so they have old-school capabilities - but they knew next to nothing about accessible! Macro recording is such a simple-to-use capability compared to learning vim! Also - the need is not frequent enough to justify the time investment (nor are the datasets large enough to devise bash scripts to deal with them in sed and awk). Maybe I should find a way (USB to dsub9 serial?) to connect up one my Amigas just for the purpose! :grin: Unfortunately they both never got a network card - LANs were pretty rare back then - at home anyway…

Wow - and it can’t even match my 80s editor on the Amiga? :duck:

Might throw a KDE build on here just to see what it can do… (NOT polluting my XFCE build with all of that! Talk about bloat!) Apparently it made quite a splash in your pond… :frog:

4 Likes

Yes it can. The workflow is slightly different, but I would be willing to bet that I can do anything in Kate you can on Amiga, in shorter time. Again, if you provide me a concrete example, I’ll can walk you through it.

Both my easy requirements were mentioned originally, and any rectangular block cut/copy/paste to any other location in the text. I don’t expect anything else to include little things like rot13 on demand though! :grin:

Kate has that.

How’s that? :thinking:

I agree with most of the comments here. Kate is a worthwhile tool to use for editing IF you use KDE as your desktop environment.

Taking the “other side” for a moment, both Emacs and Vim are “old school” in the ways they use technology, but there is very little that they either can’t do or can’t be customized or modified to do because their ability to extend, modify and morph are excellent. I’m sure that someone interested could also morph them to “look like” whatever tool or editor they like, they’re that good.

Going in yet another direction, several of the really simple, basic editors, though completely devoid and absent of the ability to customize, are also quite useful and fast for really simple editing. A command line editor like nano has no frills at all, but it’s great for notepad type quick editing. Graphical editors like Leafpad, Mousepad, and Featherpad are similar to nano, except they add graphical cutting and pasting. All four of these editors are not even close to the capabilities of Emacs, Vim, or one of the other powerful editors, yet there is a LOT they can accomplish.

The take away here is that there is no shortage of excellent editing tools that are available at no financial cost, unless you choose to contribute to them. There is also the choice to purchase commercial editing tools if you prefer, though I doubt that many of us will make that choice. It’s still a choice, and though I personally prefer freely available software, it is my opinion that both free and commercial software have a place and it is up to each of us to decide if we want to pay for commercial convenience or support freely available works. Many in “free circles” will get all “huffy” and upset to even consider commercial hardware and software. I say that each of us is free to make our own choices. Editors are NOT lacking; there are many, and the freedom of choice is what I appreciate.

1 Like

Exactly what it sounds like:

and the world’s welfare at heart—people shun it without knowing exactly why. 
Perhaps one reason—though it cann                   med strangers—is that the 
natives are now repellently decad                   r along that path of 
retrogression so common in many N                   rs. They have come to form 
a race by themselves, with the we                   nd physical stigmata of 
degeneracy and inbreeding. The av                   lligence is woefully low, 
whilst their annals reek of overt     (')-=-(')      half-hidden murders, 
incests, and deeds of almost unna   __(   "   )__   perversity. The old gentry, 
representing the two or three arm  / _/'-----'\_ \  ich came from Salem in 
1692, have kept somewhat above th _\\ \\     // //_ decay; though many branches 
are sunk into the sordid populace >__)/_\---/_\(__< y their names remain as a 
key to the origin they disgrace.                    ys and Bishops still send 
their eldest sons to Harvard and Miskatonic, though those sons seldom return to 
the mouldering gambrel roofs under which they and their ancestors were born.

             ot apply to uninfor
             ent, having gone fa
             ew England backwate
             ll-defined mental a
             erage of their inte
              viciousness and of
             mable violence and
             igerous families wh
             e general level of 
              so deeply that onl
             Some of the Whatele
3 Likes

What is the scripting facility like, though? The columnar capabilities are taken for granted (thanks for the demo!) but are only sometimes the answer needed - but macros (or, possibly scripting, if keystrokes can be designated and special characters handled cleanly) are often needed.

I used to have a system with ALL the DEs (then current) on it, as a demo of rEFInd - see our wiki, link at bottom of “Install rEFInd” as a Case Study… but I cleared that machine out to run the mirrors for EndeavourOS and chaotic-aur. I guess I’ll have to install a KDE somewhere to see what Kate can do. Hope it helps!

It’s JavaScript API, which gives you functions to control things like the cursor and the selection. I haven’t used it much, apart from trying it out, since there is nothing I can think of that I can’t do some other, faster way in Kate (typically involving regular expressions, you can do almost anything with regular expressions).

I know you said no vim and friends, but I love neovim. Tons of plugins you can install to have it do what you want and look the way you want

Here’s a sample of one such task:

scraped data
APR 15, 2022   	
vs
team logo
Oakland
7:07 PM
Rogers Centre	—	—	
Tickets Starting at $25.00
APR 16, 2022  	
vs
team logo
Oakland
3:07 PM
Rogers Centre	—	—	
Tickets Starting at $22.00
Intended output
.
    Team      Date       Opp     Time       
    --------- ---------- -----   ---------  
    Bjays:    Fri 15 Apr V DAL   7:00 pm
    Bjays:    Sat 16 Apr V OAK   3:07 pm

Less than 10 minutes for 200 such entries in CygnusEd Pro - how many hours in Kate?

At first glance, I see no way to automatically generate that table.

For example, how did “7:07 PM” turn into “7:00 pm” :rofl:

If I needed to do something like that, I’d use Awk (Kate can automatically pipe its buffer to an external process and filter the output). Though, I still don’t know how I would get “7:00 pm”… :thinking:

2 Likes