Perl autoload

[weechat] searching through a buffer behavior? Vi-like bindings

2024.03.17 17:05 lvall22 [weechat] searching through a buffer behavior? Vi-like bindings

Started using weechat, I'm looking to get some vi-like bindings but vimode.py seems kind of hacky so now I'm thinking of just having some vim-like/shell-like bindings for just buffer searching, command searching, window splitting, buffer navigation/focusing, and scrolling.
Anyway I started looking into the behavior of searching, but I don't really understand how it works. On weechat with no config, I start it up then do a Ctrl-s to search the buffer, then I get the following output:
input bar: l
> Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, typing, xfer 
input bar: lin
> BEGIN failed--compilation aborted at /home/lvall/.local/share/weechat/perl/autoload/menu.pl line 761. 
=!= perl: function "register" not found (or failed) in file "/home/lvall/.local/share/weechat/perl/autoload/menu.pl" perl scripts loaded: highmon python scripts loaded: go script: 312 scripts for WeeChat 4.2.1 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, typing, xfer
I get more results as I type lin--how is this possible? Is it not doing incremental search? I'm looking to implement n and N for searching like in vim.
Also if anyone has implemented vi-like bindings and can share that would be much appreciated.
submitted by lvall22 to irc [link] [comments]


2023.12.30 05:04 redweasel Anybody know anything about Perl/Tk mega-widgets? I've been banging my head against them for 25 YEARS now.

I've done a lot of cool, fun, and useful GUIs in Perl/Tk, and still use it heavily in my own personal programming. I've never found anything to beat it for performance, portability, and ease of use. Write once, run anywhere. The only problem is that since the passing of Nick Ing-Simmons many years ago now, Perl/Tk support seems to have gone through some changes, leaving it I-know-not-where, today.
For a while, as I heard it, people tried to figure out and understand Nick's code well enough to continue supporting it as he had, but "to no avail." Nobody understood how it worked. (From personal experience, even using the Perl Debugger to single-step through it, to try to reverse-engineer it, didn't work -- almost every single.. er... single-step, takes you someplace you didn't expect, and you can't figure out how you've gotten there. Only Nick Himself, and Larry Wall before him, have ever understood Perl and OOP so well that they could get any desired functionality from completely impenetrable code. No one else can, least of all me.
But I digress. After the initial team gave up in defeat, Perl/Tk was semi-officially deprecated and was removed from the official Perl base distribution. Everybody who'd otherwise be using Perl/Tk was encouraged to change to the somewhat more awkward but, apparently, more maintainable by mere mortals, Tkx package. Fortunately, the necessary syntax changes were minimal, the only problem being that almost every line of Perl/Tk code needed at least one change, which could be a prohibitive burden if you had a metric buttload of old Perl/Tk code, like I did. But if you changed computers during this era, and had to (re)install Perl, Perl/Tk was hard to find, and you perforce had to make do with Tkx. I wrote some of my own newer stuff in Tkx.
Today, though, the tables seem inexplicably to have turned: Tkx is now hard to find and harder to install, and seems to require (on Linux anyway) a pre-existing installation of TCL (or at least tclsh), which Perl/Tk never did and I don't remember needing on Windows even with Tkx. Tk, on the other hand, is now easily available, still/again as part of the Perl base installation. So now I'd like to migrate my relatively small, though still significant, body of Tkx creations back to Tk if that's the way things are going to go! Or at the very least, install both Perl/Tk and Tkx, so that both sets of my old code will run. God forbid they ever need to work together, though: I'll still end up rewriting / translating things.
Which brings me to the one thing that has infuriated -- absolutely infuriated! -- me for years, in Perl/Tk: Mega-widgets. Has anybody ever been able to make useful sense of the Mega-widget facility in Perl/Tk? I can't make heads or tails of it, despite now nearly thirty years of intermittent attempts. Working from Chapter 14 of "Mastering Perl/Tk," I find that the number of inexplicable, non-working, or incorrectly-behaving, things mounts up at such a rate that I've literally never made it through the entire chapter. The very first piece of example code that puts an actual widget on the screen, for instance, puts two widgets on the screen, when you only want one. That's because you get the one you construct, explicitly, at run time, but also get one from a Construct statement that appears outside any function and is therefore sorta "load-time" code. But if you omit the load-time instance, the code won't run at all, with Perl claiming that it "can't AUTOLOAD..." the necessary class. When I first experienced this behavior in my own attempted mega-widget code, I thought I'd done something wrong -- so it's actually kind of a relief to see the same thing happen to the authors of the book -- but on the other hand, I'm appalled that they apparently couldn't do anything to avoid it, any more than I can today.
Plugging away at it anyway, in the hope that eventually, someday, all might become clear, I next get stuck on the ConfigSpecs function, the use of which I absolutely cannot figure out. Most of the keywords it is said to accept, don't seem to do anything useful, even in the random moments when I can get them to do anything at all, which is a tiny, tiny, fraction of the time. By the time I've made seventeen or eighteen incremental adjustments to the same fifty-character stretch of code, trying to figure out the magic formula that makes ConfigSpecs do anything but vomit, I've long ago forgotten what I was trying to achieve, and what the magic incantation looked like, ten versions ago, when it almost worked. The trial-and-error process of just trying to implement one, single, 'PASSIVE' option is backbreaking, brainbreaking, exhausting, and infuriating; I'm writing this ppost in the heat of white-hot fury, as a better alternative to standing up, walking away from the computer, and smashing the ever-living crap out of some random piece of furniture.
I've tried looking for alternate explanations that might shed some clarifying light on the gawdawful miasma that is Chapter 14 of "Mastering Perl/Tk," but to no avail. Such "documentation" (and I use quote marks intentionally, to indicate that I am using that word ironically, because I can't use it literally and still keep a straight face) as exists, is just the exact same information, extracted from the same old .pod files -- which I presume were probably written by Nick Ing-Simmons, the only man who understood the code -- just formatted a little differently. The difficulty of finding a cogent, comprehensible, explanation is just as exhausting and infuriating as trying to figure it out for myself by trial-and-error. This, frankly, is ridiculous.
And yet, Steve Lidie and Nancy Walsh, who wrote that book, evidently felt that they understood the Perl/Tk Mega-widget facility, and well enough to think they were explaining it to their readers, otherwise this chapter would contain nothing but a disclaimer that "we understood everything about Perl/Tk except the Mega-widget facility, so I have to ask: how the heck did they figure it out Inquiring minds desperately need to know.
If anybody reading this knows or understands anything whatsoever about Perl/Tk mega-widgets, I'm desperate to converse about it; please either respond here, or message me directly. Failing that -- a more fundamental question: is there a Mega-widget facility of any kind in Tkx?
Thanks in advance.
submitted by redweasel to perl [link] [comments]


2023.04.03 17:02 0orpheus Strange crashes after TW 20230402 updates

Long story short, after installed the 0402 snapshot, I'm experiencing stranger segfaults in two unrelated programs that both go away upon reverting to 20230329 (my last installed snapshot).
The first program crashing is DOTA2, which seems to segfault a few moments after starting up, before an application window even spawns. This suggests to me it might be a Vulkan issue, and appears to be affecting some other users on rolling-release distros. The Github issue thread for it suggests it's caused by updating LLVM/clang to 16; I don't know if that's related, but I when I run zypper dup I do see the following package changes:
The following 15 NEW packages are going to be installed: [...] libclang-cpp16 libLLVM16 libLLVM16-32bit 
The other program crashing is tinyMediaManager3, which is a Java/Swing app. It will at least start up, but appears to crash when it tries to pull info from the media files. Unfortunately I don't get much logs from it (at least that I can find) but it does output some core dumps that might be useful.
I'll be frank, I'm at a loss as to what update could be breaking both a C++/Vulkan app and a Java/Swing app while still letting most things boot, so any tips or solutions would be much appreciated. My only other thought is perhaps the Mesa update is causing the issue, but i'd imagine I'd see more things breaking if that's the case.
For context, the full zypper dup between my current rolled back snapshot and today (04/03):
The following item is locked and will not be changed by any action: Installed: xf86-input-keyboard The following 553 packages are going to be upgraded: alacritty alacritty-bash-completion alacritty-zsh-completion android-tools android-tools-bash-completion ansible ansible-core apcupsd blender blender-demo blender-lang boost-license1_81_0 borgbackup borgbackup-bash-completion borgbackup-zsh-completion btrfsprogs btrfsprogs-udev-rules bubblewrap bubblewrap-zsh-completion chromium cmake cmake-full cmake-man containerd container-selinux coreutils coreutils-doc coreutils-lang cpp12 cpupower cpupower-bash-completion db48-utils discount dmidecode docker-compose drkonqi5 drkonqi5-lang dvgrab exiftool freeglut-devel fuse3 fwupd-efi g810-led gcc12 gcc12-c++ gc-devel gdbm-devel gdbm-lang gdk-pixbuf-loader-libheif gegl-0_4 gegl-0_4-lang girepository-1_0 glslang-devel gmp-devel gnutls gnutls-guile godot godot-bash-completion google-chrome-stable gstreamer-plugins-bad gstreamer-plugins-bad-codecs gstreamer-plugins-bad-lang helm helm-bash-completion helm-zsh-completion hplip-hpijs hplip-sane hplip-udev-rules hugo hugo-bash-completion ImageMagick ImageMagick-config-7-SUSE info info-lang info-std iproute2 iproute2-arpd iproute2-bash-completion jupyter-jupyter-client kdepim-addons kdepim-addons-lang kernel-macros krb5 krb5-32bit kubernetes1.24-client kubernetes1.25-client kubernetes1.26-client kubernetes1.26-client-common kubernetes-client kvm_stat libaspell15 libassimp5 libatomic_ops-devel libblkid1 libblkid1-32bit libblkid-devel libboost_atomic1_81_0 libboost_atomic1_81_0-x86-64-v3 libboost_chrono1_81_0 libboost_date_time1_81_0 libboost_date_time1_81_0-x86-64-v3 libboost_filesystem1_81_0 libboost_filesystem1_81_0-x86-64-v3 libboost_iostreams1_81_0 libboost_iostreams1_81_0-x86-64-v3 libboost_locale1_81_0 libboost_locale1_81_0-x86-64-v3 libboost_program_options1_81_0 libboost_program_options1_81_0-x86-64-v3 libboost_regex1_81_0 libboost_regex1_81_0-x86-64-v3 libboost_system1_81_0 libboost_system1_81_0-x86-64-v3 libboost_thread1_81_0 libboost_thread1_81_0-x86-64-v3 libboost_wave1_81_0 libboost_wave1_81_0-x86-64-v3 libbox2d2 libbtrfs0 libbtrfsutil1 libbullet3_17 libcap2 libcap2-32bit libclang12 libclang13 libclang-cpp13 libclang-cpp14 libclang-cpp15 libcmark0_30_3 libcpupower0 libcrc32c1 libcrypt1 libcrypt1-32bit libdate-tz3 libdb-4_8-32bit libdeflate0 libdouble-conversion3 libeconf0 libeconf0-32bit libfabric1 libfdisk1 libfmt9 libftdi1-2 libfuse3-3 libgbm1 libgbm1-32bit libgc1 libgcrypt20 libgcrypt20-x86-64-v3 libgcrypt-devel libgdbm6 libgdbm6-32bit libgdbm_compat4 libgdbm_compat4-32bit libgegl-0_4-0 libgirepository-1_0-1 libglslang12 libglut3 libglut3-32bit libgmpxx4 libgnutls30 libgnutls30-32bit libgnutls-dane0 libgnutls-devel libgstadaptivedemux-1_0-0 libgstbadaudio-1_0-0 libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstcodecs-1_0-0 libgstcuda-1_0-0 libgstisoff-1_0-0 libgstmpegts-1_0-0 libgstphotography-1_0-0 libgstplay-1_0-0 libgstplayer-1_0-0 libgstsctp-1_0-0 libgsttranscoder-1_0-0 libgsturidownloader-1_0-0 libgstva-1_0-0 libgstvulkan-1_0-0 libgstwayland-1_0-0 libgstwebrtc-1_0-0 libgstwebrtcnice-1_0-0 libguestfs libguestfs0 libguestfs-appliance libguestfs-winsupport libguestfs-xfs libgupnp-igd-1_0-4 libheif1 libhwy1 libhwy1-32bit libinput10 libinput-devel libinput-udev libisl23 libixml11 libjavascriptcoregtk-4_0-18 libjavascriptcoregtk-4_1-0 libjavascriptcoregtk6_0-1 libjitterentropy3 libkdsoap2 libldb2 libldb2-32bit libLLVM12 libLLVM12-32bit libLLVM13 libLLVM13-32bit libLLVM14 libLLVM14-32bit libLLVM15 libLLVM15-32bit libMagickCore-7_Q16HDRI10 libMagickWand-7_Q16HDRI10 libmediainfo0 libmemcached11 libmount1 libmount1-32bit libmount-devel libnfsidmap1 libnotmuch5 libolm3 libopenmpt0 libopenmpt0-32bit libopenssl1_0_0 libopenssl1_0_0-steam libopenssl1_0_0-steam-32bit libopenssl1_1 libopenssl1_1-32bit libopenssl-1_1-devel libOSMesa8 libOSMesa8-32bit libostree libostree-1-1 libpackagekitqt5-1 libPocoFoundation92 libPocoXML92 libPocoZip92 libpolkit-agent-1-0 libpolkit-gobject-1-0 libpq5 libpugixml1 libpulse0 libpulse0-32bit libpulse-devel libpulse-mainloop-glib0 libqpdf29 libquazip1-qt5-1_4_0 libQuotient0_6 librados2 librbd1 librcc0 librttr_core0_9_6 libruby3_2-3_2 libsamba-policy0-python3 libSDL2_ttf-2_0-0 libshaderc_shared1 libsmartcols1 libsnapper6 libsox3 libspandsp3 libspdlog1_11 libssh-config libstdc++6-devel-gcc12 libstorage-ng1 libstorage-ng-lang libstorage-ng-ruby libSvtAv1Enc1 libtbb12 libtorrent-rasterbar2_0 libucm0 libucp0 libucs0 libuct0 libupnp17 libuuid1 libuuid1-32bit libuuid-devel libvdpau_r300 libvdpau_r600 libvdpau_radeonsi libvdpau_radeonsi-32bit libvkd3d1 libvkd3d1-32bit libvkd3d-shader1 libvkd3d-shader1-32bit libvlc5 libvlccore9 libvulkan1 libvulkan1-32bit libvulkan_intel libvulkan_intel-32bit libvulkan_lvp libvulkan_radeon libvulkan_radeon-32bit libwebkit2gtk-4_0-37 libwebkit2gtk-4_1-0 libwebkitgtk6_0-4 libxcrypt-devel libyaml-cpp0_7 libzck1 libZXing3 lsp-plugins-common lutris lv2-lsp-plugins mediainfo Mesa Mesa-32bit Mesa-demo-egl Mesa-demo-x Mesa-dri Mesa-dri-32bit Mesa-gallium Mesa-gallium-32bit Mesa-KHR-devel Mesa-libEGL1 Mesa-libEGL-devel Mesa-libGL1 Mesa-libGL1-32bit Mesa-libglapi0 Mesa-libglapi0-32bit Mesa-libGL-devel Mesa-libva Mesa-vulkan-device-select Mesa-vulkan-device-select-32bit mingw32-filesystem mingw32-libz mkvtoolnix mkvtoolnix-gui MozillaThunderbird mtools mtxclient-doc neomutt neomutt-doc neomutt-lang neovim neovim-lang newsboat newsboat-lang nfs-client nfs-kernel-server nodejs-electron notmuch okular okular-lang olm-devel olm-doc openssh openssh-askpass-gnome openssh-clients openssh-common openssh-helpers openssh-server openssl-1_1 openSUSE-release openSUSE-release-ftp parsec perl-File-RandomAccess perl-Image-ExifTool perl-Sys-Guestfs pkexec podman podman-cni-config polkit postgresql12 postgresql12-contrib postgresql12-llvmjit postgresql12-server postgresql13 postgresql13-contrib postgresql13-llvmjit postgresql13-server postgresql14 postgresql14-contrib postgresql14-llvmjit postgresql14-server postgresql15 postgresql15-contrib postgresql15-llvmjit postgresql15-server pulseaudio-bash-completion pulseaudio-setup pulseaudio-utils pulseaudio-utils-32bit pulseaudio-zsh-completion python310-charset-normalizer python310-click python310-CommonMark python310-cryptography python310-FontTools python310-gobject python310-gobject-cairo python310-gobject-Gdk python310-httplib2 python310-json5 python310-jupyter-client python310-msgpack python310-numpy python310-pathspec python310-pexpect python310-pyOpenSSL python310-pytz python310-setuptools python38-charset-normalizer python38-click python38-CommonMark python38-coverage python38-cryptography python38-FontTools python38-gobject python38-gobject-cairo python38-gobject-Gdk python38-httplib2 python38-jupyter-client python38-msgpack python38-numpy python38-pathspec python38-pexpect python38-pyOpenSSL python38-pytz python38-setuptools python39-charset-normalizer python39-cryptography python39-gobject python39-gobject-cairo python39-gobject-Gdk python39-numpy python39-pyOpenSSL python39-setuptools python3-ldb python3-libtorrent-rasterbar qemu qemu-accel-qtest qemu-accel-tcg-x86 qemu-audio-spice qemu-block-curl qemu-block-nfs qemu-block-rbd qemu-chardev-spice qemu-hw-display-qxl qemu-hw-display-virtio-gpu qemu-hw-display-virtio-gpu-pci qemu-hw-display-virtio-vga qemu-hw-s390x-virtio-gpu-ccw qemu-hw-usb-host qemu-hw-usb-redirect qemu-hw-usb-smartcard qemu-ipxe qemu-ivshmem-tools qemu-ksm qemu-kvm qemu-linux-user qemu-microvm qemu-seabios qemu-sgabios qemu-skiboot qemu-tools qemu-ui-curses qemu-ui-gtk qemu-ui-opengl qemu-ui-spice-app qemu-ui-spice-core qemu-vgabios qemu-x86 rcc-runtime rpmlint-mini ruby3.2 ruby3.2-devel runc samba samba-ad-dc-libs samba-ad-dc-libs-32bit samba-client samba-client-32bit samba-client-libs samba-client-libs-32bit samba-gpupdate samba-ldb-ldap samba-libs samba-libs-32bit samba-libs-python3 samba-python3 samba-winbind samba-winbind-libs samba-winbind-libs-32bit scons shared-mime-info shared-mime-info-lang snapper snapper-zypp-plugin sox srb2 srb2-data srb2kart srb2kart-data system-user-pulse tailscale timezone timezone-java transcode transmission transmission-common typelib-1_0-JavaScriptCore-4_0 typelib-1_0-JavaScriptCore-4_1 typelib-1_0-JavaScriptCore-6_0 typelib-1_0-Polkit-1_0 typelib-1_0-WebKit2-4_0 typelib-1_0-WebKit2-4_1 typelib-1_0-WebKit2WebExtension-4_1 typelib-1_0-WebKit-6_0 typelib-1_0-WebKitWebProcessExtension-6_0 util-linux util-linux-lang util-linux-systemd util-linux-tty-tools v4l2loopback-autoload v4l2loopback-utils valgrind valgrind-client-headers valgrind-devel vim vim-data vim-data-common vlc vlc-codec-gstreamer vlc-codecs vlc-devel vlc-jack vlc-lang vlc-noX vlc-opencv vlc-qt vlc-vdpau vulkan-devel vulkan-headers vulkan-tools webkit2gtk3-devel webkit2gtk-4_0-injected-bundles webkit2gtk-4_1-injected-bundles webkit2gtk4-devel webkitgtk-6_0-injected-bundles xen-libs xf86-video-mach64 xf86-video-vboxvideo xfsprogs xorg-x11-server xorg-x11-server-extra xorg-x11-server-Xvfb yast2 yast2-country yast2-country-data yast2-logs yast2-trans The following product is going to be upgraded: openSUSE Tumbleweed 20230325-0 -> 20230401-0 The following 15 NEW packages are going to be installed: btrfsprogs-bash-completion kernel-default-6.2.9-1.1 kernel-default-6.2.9-2.1.gc39e89f kernel-default-devel-6.2.9-2.1.gc39e89f kernel-devel-6.2.9-2.1.gc39e89f kubernetes1.26-client-bash-completion libclang-cpp16 libLLVM16 libLLVM16-32bit libmarkdown3 libSPIRV-Tools-2023_2 libSPIRV-Tools-2023_2-32bit v4l2loopback-kmp-default-0.12.7_k6.2.9_1-1.31 virtualbox-kmp-default-7.0.6_k6.2.9_1-6.2 xxd The following 3 packages are going to be REMOVED: libmarkdown2 libSPIRV-Tools-2023_1 libSPIRV-Tools-2023_1-32bit The following 2 packages require a system reboot: kernel-default-6.2.9-1.1 kernel-default-6.2.9-2.1.gc39e89f 
EDIT: Here's the logs I could gather from the affected programs:
Dota2 steam console output: https://pastebin.com/AuzRsaXM
tinyMediaManager core dump: https://paste.opensuse.org/pastes/043c826a854e
Second EDIT: Looks like it was just a strange coincidence: downgrading mediainfo fixes tinyMediaManager and swapping out the libtmalloc_minimal library from dota with the system one fixes the respective issues.
submitted by 0orpheus to openSUSE [link] [comments]


2023.03.29 12:18 Ttghtg Error when processing BufWinEnter autocommand

Hello, I'm currently running nvim 0.8.3. I am trying to save and load automatically folding in my Python code, but I have an error doing it. I have the following minimal init.vim:
autocmd BufWinLeave * mkview autocmd BufWinEnter * silent loadview 
However, when I try to edit my Python code, I get the following error:
Error detected while processing BufWinEnter Autocommands for "*": E32: No file name Error detected while processing command line..script /home/my_username/code/Session.vim[30]..BufWinLeave Autocommands for "*": "run.py" 726L, 33737B 
My :checkhealth is the following:
man: require("man.health").check() ======================================================================== - OK: plugin/man.vim not in $VIMRUNTIME -OK: autoload/man.vim not in $VIMRUNTIME nvim: health#nvim#check ======================================================================== ## Configuration - OK: no issues found ## Performance - OK: Build type: Release ## Remote Plugins - OK: Up to date ## terminal - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177 - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~ - INFO: $TERM_PROGRAM='tmux' - INFO: $COLORTERM='truecolor' ## tmux - OK: escape-time: 10 - INFO: Checking stuff - OK: focus-events: on - INFO: $TERM: tmux-256color provider: health#provider#check ======================================================================== ## Clipboard (optional) - OK: Clipboard tool found: tmux ## Python 3 provider (optional) - INFO: `g:python3_host_prog` is not set. Searching for python3.10 in the environment. - INFO: Executable: /usbin/python3.10 - INFO: Python version: 3.10.10 - INFO: pynvim version: 0.4.3 - OK: Latest pynvim is installed. ## Python virtualenv - OK: no $VIRTUAL_ENV ## Ruby provider (optional) - INFO: Ruby: ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x86_64-linux] - WARNING: `neovim-ruby-host` not found. - ADVICE: - Run `gem install neovim` to ensure the neovim RubyGem is installed. - Run `gem environment` to ensure the gem bin directory is in $PATH. - If you are using rvm/rbenv/chruby, try "rehashing". - See :help g:ruby_host_prog for non-standard gem installations. - You may disable this provider (and warning) by adding `let g:loaded_ruby_provider = 0` to your init.vim ## Node.js provider (optional) - INFO: Node.js: v19.8.1 - WARNING: Missing "neovim" npm (or yarn, pnpm) package. - ADVICE: - Run in shell: npm install -g neovim - Run in shell (if you use yarn): yarn global add neovim - Run in shell (if you use pnpm): pnpm install -g neovim - You may disable this provider (and warning) by adding `let g:loaded_node_provider = 0` to your init.vim ## Perl provider (optional) - WARNING: "Neovim::Ext" cpan module is not installed - ADVICE: - See :help provider-perl for more information. - You may disable this provider (and warning) by adding `let g:loaded_perl_provider = 0` to your init.vim vim.lsp: require("vim.lsp.health").check() ======================================================================== - INFO: LSP log level : WARN - INFO: Log path: /home/csej/.local/state/nvim/lsp.log - INFO: Log size: 1 KB vim.treesitter: require("vim.treesitter.health").check() ======================================================================== - INFO: Runtime ABI version : 14 
PS: I tried to hide my :checkhealth in a spoiler tag but it didnt work, what could be a better option in the future?
submitted by Ttghtg to neovim [link] [comments]


2023.01.10 00:12 scottchiefbaker Need help with using `$AUTOLOAD` for debug printing

I have the following $AUTOLOAD sub that I used to setup a debug print using k() which defaults to Data::Dump::Color or falls back to Data::Dumper if DDC isn't available.
sub AUTOLOAD { our $AUTOLOAD; # keep 'use strict' happy if ($AUTOLOAD eq 'main::k') { if (eval { require Data::Dump::Color }) { *k = sub { Data::Dump::Color::dd(@_) }; } else { require Data::Dumper; *k = sub { print Data::Dumper::Dumper(@_) }; } eval($AUTOLOAD . '(@_)'); } } 
This works great, EXCEPT when I call a subroutine that doesn't exist:
k(42); # Works as expected bogus_sub(); # No error is spit out 
Is there a way to have Perl spit out the original error message that bogus_sub function call would have generated?
submitted by scottchiefbaker to perl [link] [comments]


2022.12.14 23:42 scottchiefbaker Perl silently fails on improper case of subroutines?

I have the following code snippet that caught me off guard:
use strict; use warnings; use v5.16; FOO(); # This SHOULD be `foo()` print "After\n"; sub foo { print "Hello world!\n"; } 
I have a sub defined foo() which I incorrectly called as FOO() and Perl did NOT complain or warn about. Not only does it not warn, but it doesn't run the sub. It just silently skips that line? In fact, any spelling of FoO() or foO() does the same thing, as long as the sub basename is the same.
Is this normal? I feel like this should at least warn?
Update: I'm running this on v5.26 on CentOS 8.
Update #2: Please disregard. I had some $AUTOLOAD code in my boilerplate that was masking this error.
submitted by scottchiefbaker to perl [link] [comments]


2022.12.12 16:46 rwp0 oo_sub: Enable OOP in supported Perl functions

oo_sub: Enable OOP in supported Perl functions
https://metacpan.org/pod/oo_sub
My first release to CPAN with documentation and tests.
All suggestions welcome at:
https://github.com/rwp0/oo_sub
This is a pragmatic module that relies on autoload_remote for its magic.
A screenshot of the development process
I first described the idea in a p5p mailing list post in July, and then implemented it when had enough free time to research and code.
submitted by rwp0 to perl [link] [comments]


2022.05.17 14:00 Fit-Comparison-6574 Use of inherited AUTOLOAD for non-method Win32::GetACP() is deprecated

I am trying to use latexmk as a default compiler in texstudio and it needs a Perl script to function, I installed perl 5 on my machine (windows) and when I compile my documents with texstudio it throws that warning:
Use of inherited AUTOLOAD for non-method Win32::GetACP() is deprecated at: /AppData/Local/Programs/MiKTeX/scripts/latexmk/latexmk.pl line 143
Trouble finding and setting code pages used by Windows: Can't locate auto/Win32/GetACP.al in u/INC
Latexmk: Could not find file 'library'. -- Use the -f option to force complete processing

Disclaimer: I have zero knowledge about Perl.

update: here is the line referred to in the warning
if ($^O eq "MSWin32") { eval { require Win32; $CP_Win_system = Win32::GetACP(); $CS_system = 'CP' . $CP_Win_system; $CP_init_Win_console_in = Win32::GetConsoleCP(); $CP_init_Win_console_out = Win32::GetConsoleOutputCP(); if ( Win32::SetConsoleOutputCP($CP_Win_system) && Win32::SetConsoleCP($CP_Win_system) ) { } else { warn "Cannot set Windows Console Output CP to $CP_Win_system.\n"; } }; if ($@) { warn "Trouble finding and setting code pages used by Windows:\n", " $@", " ILL CONTINUE WITH UTF-8.\n"; } else { $Win_revert_settings = ($CP_init_Win_console_in ne $CP_Win_system) ($CP_init_Win_console_out ne $CP_Win_system); } print "Win CP console initial and current in/out Win: ", "($CP_init_Win_console_in, $CP_init_Win_console_out), ", "($CP_Win_system, $CP_Win_system)\n"; } $utf8_used = ($CS_system eq 'UTF-8') ($CS_system eq 'CP65001');
submitted by Fit-Comparison-6574 to perl [link] [comments]


2021.11.11 03:02 Icy-Surround-4687 vim for rust-lang configured to support multiple development languages - Updated to support graphical debugging of code

https://github.com/wandercn/go-ide-vim.conf

go-ide-vim.conf

my vim conf for golang IDE and rust IDE

supported languages

requirements

vim 8.0 +python3 +lua
iTerm2 (Support true color)
brew install macvim vim --version VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 01 2021 08:32:44) macOS version - x86_64 包含补丁: 1-2681 编译者 Homebrew 巨型版本 带 MacVim 图形界面。 可使用(+)与不可使用(-)的功能: +acl +file_in_path -mouse_sysmouse -tag_old_static +arabic +find_in_path +mouse_urxvt -tag_any_white +autocmd +float +mouse_xterm +tcl +autochdir +folding +multi_byte +termguicolors -autoservername -footer +multi_lang +terminal +balloon_eval +fork() -mzscheme +terminfo +balloon_eval_term +fullscreen +netbeans_intg +termresponse +browse +gettext +num64 +textobjects ++builtin_terms -hangul_input +odbeditor +textprop +byte_offset +iconv +packages +timers +channel +insert_expand +path_extra +title +cindent +ipv6 +perl +toolbar +clientserver +job +persistent_undo +transparency +clipboard +jumplist +popupwin +user_commands +cmdline_compl +keymap +postscript +vartabs +cmdline_hist +lambda +printer +vertsplit +cmdline_info +langmap +profile +virtualedit +comments +libcall -python +visual +conceal +linebreak +python3 +visualextra +cryptv +lispindent +quickfix +viminfo +cscope +listcmds +reltime +vreplace +cursorbind +localmap +rightleft +wildignore +cursorshape +lua +ruby +wildmenu +dialog_con_gui +menu +scrollbind +windows +diff +mksession +signs +writebackup +digraphs +modify_fname +smartindent -X11 +dnd +mouse -sound -xfontset -ebcdic +mouseshape +spell +xim +emacs_tags +mouse_dec +startuptime -xpm +eval -mouse_gpm +statusline -xsmp +ex_extra -mouse_jsbterm -sun_workshop -xterm_clipboard +extra_search +mouse_netterm +syntax -xterm_save -farsi +mouse_sgr +tag_binary 
Plugin Manager
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/masteplug.vim 
- 为了方便大家快速上手,增加了自定义快捷键说明
- 更新了tagBar对Rust显示效果,把类型和对应的方法函数做了关联显示。
- 增加了图形化Debug支持。

希望大家尝试vim开发。
submitted by Icy-Surround-4687 to rust [link] [comments]


2020.07.25 13:36 byt1e FZF.Vim :Tags on Windows: how to remove perl dependency?

I use FZF.Vim under Windows 10, and :Tags command has Perl as dependency. When i try to run :Tags, it says «Tags command requires perl», which I dont have under Windows and dont want to install (AFAIK there's no single-file perl binary under Windows, and installing a whole bunch of it just because of FZF seem an overkill).
The code used in fzf.vim\autoload\fzf\vim.vim is return s:fzf('tags', { \ 'source': 'perl '.fzf#shellescape(s:bin.tags).' '.join(map(tagfiles, 'fzf#shellescape(fnamemodify(v:val, ":p"))')), \ 'sink*': s:function('s:tags_sink'), \ 'options': extend(opts, ['--nth', '1..2', '-m', '--tiebreak=begin', '--prompt', 'Tags> ', '--query', a:query])}, a:000)
How could I patch this function to remove perl depenency? Can this perl call be replaced with some rust tool that is available on both Linux and Windows?
submitted by byt1e to vim [link] [comments]


2020.04.17 12:34 LispAdvocates A case for Vim

A case for Vim
Abstract: Absent from discussion involving Lisp family languages, and ofttimes shunned by the more dedicated lisp advocates, Vim and Neovim editors, despite their controversial image among the Lisp community, offer a unique and tempting selection of valuable features.

§ 1. Introduction

§ 1.1 Introduction

Lisp tradition predates much of the technology that is ubiquitous in the world of today. Yet despite it's cosmic ambition, Lisp is relegated to carve out it's niche on the outskirts of the engineering culture: out of sight, and out of mind for all but the most investigative or lucky of today's engineers.
For a merry band that fringe, it is all but natural to feel protective of their heritage, particularly when the heritage often dwarfs the recent advances and dominates much of the community's perceptions. This might lead some of us to limit our search for inspiration in a way that outright prohibits the free thinking attitude that in our opinion is the key to unlocking one's true potential.

§ 1.2 Document Purpose

The proposition that we're here to present to you is the following:
Just like the few non-lispy DSL's the Common Lisp standard is known for, - the dreaded LOOP and FORMAT utilities, - are in fact supremely useful and succinct tools to navigate their respective domains, - similarly the multiple DSL's that together comprise the modern Vim, are the cutting edge manifestation of humanity's understanding of text editing, through no fault of their own and largely by historic accident and the nature of it's medium, expressed in ways that do not involve s-expressions.
Indeed it could be argued that the commonly accepted default editor for the Lisp community, both supremely blessed and irrefutably cursed beyond salvation, is also the cutting edge DSL for the mission that it has stumblingly snowballed into, unparalleled in it's self indulgence. The goal of this article is to present you, the reader, with the information that can be used make your own conclusions with regards to comparative offerings.

§ 1.3 Lisp vs Vimscript

For a Common Lisp aficionado, the blood-brain barrier of not having their editor be configurable in Common Lisp has been both a crippling handicap, and an omnipresent nudge to invest their time in exploring the engineering projects that would rectify this issue.
In this regard, having your editor be configurable in Emacs Lisp, Vimscript, JavaScript, or Microsoft Word VBA macros, from the more zealous point of view, is exactly the same. Except that some of these editors do indulge in the most starry-eyed form of Lisp signaling, and some don't, and it's not the Microsoft Word that's being taken a jab at.
We believe that the users who take it upon themselves to commit to Common Lisp, are well beyond the starry eyed stage, having their eyes instead replaced by programmable s-expression readers.
Paul Patricio

§ 2. Foundation

§ 2.1 Performance

There is a lot to be said about performance, and we're not about to pull our punches even for the more mundane causes such as this.
The world we live in is well past the "throw more hardware at it until it works" stage that has been prominent in the days of yesteryear. It's not that we have become ideologically opposed to technology that demands only the most abundant substrate to shield the user from it's performance bottlenecks, but rather that most of the rest of our stack is so mercifully resilient to the various dimensions of computing shortages that the attention is brought upon the greedy monsters similarly to how someone's loud voice looms in a room that suddenly went dead with silence.
We're not going to explore this avenue much further beyond what has already been said, aside from inviting you to take a look at our #LispGIFs. These are played back in real time (as evidenced by the shell's command execution timer displayed in the end), starting a fresh new independent instance of plain old Vim (Neovim is engineered to be lighter in many regards!) carrying 140 plugins and 14772 lines of non-comment configuration outside those plugins, all of it using the slow ass default Vimscript engine which now both Vim and Neovim strive to provide an alternative to, running on a 10 year old Linux desktop.
------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- vim script 232 3017 4493 14772 
To the more doubtful of the video editing tricks that might have taken place under the table, we want to both express our sincerest degree of appreciation for your thoroughness, as well as to provide a bold claim that this kind of performance is not uncharacteristic.

§ 2.2 Structure

In fields that allow for the more diligent type of exploration, it is not uncommon for the conversation to be dominated by the voices of the less attuned, and such is the editor war. Similarly to the performance questions explored in § 2.1 - which would often present a reason to weigh in for the hackers that pursue a different avenue altogether, such as minimalism - the idea of providing users with a structure to their configuration can also be completely irrelevant to those with yet a less intricate approach.
We however believe that domain-relevant meaning is domain-relevant meaning, and absence thereof is simply but absence thereof.
Vim provides the users with established directory structure that is meaningfully similar between your configuration directory and an unfamiliar plugin you have just downloaded from the internet, allowing for folders such as, to give a few examples:
  • plugin/
Holds files and folders that are immediately loaded for all filetypes.
  • ftplugin/
Holds files and folders only loaded for specific filetype, like:
ftplugin/lisp.vim ftplugin/lisp/mappings.vim 
Where mappings.vim is but a personal preference, but lisp is a file type.
  • ftdetect/
Where we can add our own ways to set a filetype programmatically upon encountering a file, e.g. marking *.asd as lisp.
  • syntax/
Filetype-specific syntax rules used for syntax highlighting and navigation, defined using an elaborate and performant DSL.
  • afte
Contains files and folders like the above that are to execute in a separate pass, designed to gracefully override the defaults that have been merged into runtimepath from somewhere outside of our control. Used to e.g. override some settings for existing filetypes to your liking.
  • autoload/
Contains files that are only loaded as they are referred to by the function names contained within (e.g. git#commit#with_message).

§ 3. In the grim darkness of the 41st millennium

§ 3.1 Evaluation

At perhaps a point too far down this document, we feel that it is time to take a break from exploring what Vim offers that others don't, and address some things that might have bothered our Lisp reader thus far, drawing from their focus and perception.
Vimscript can be executed at runtime, as well as your plugin manager can have the power to fetch and load a plugin at runtime.
There is little difference between sending your s-expression to be evaluated, and sending a line or a block of Vimscript to be evaluated. We follow largely a similar routine in either:
function! LethalWeapon() return "I'm doing my part!" endfunction " A block of lines that will not be evaluated when the file is loaded: if 0 " Bunch of calls that we'll keep as evaluation history: echo LethalWeapon() endif 
As compared to:
(defun lethal-weapon () "I'm doing my part!") ;;; A form that will not be evaluated when the file is loaded: #+nil (progn ;; Bunch of calls that we'll keep as evaluation history: (lethal-weapon)) 
Granted, the REPL-friendliness aspect of Common Lisp extends far beyond being able to send s-expressions, which is exactly why we don't rewrite the world in Vimscript instead.

§ 3.2 Runtime Inspection

  • You can fuzzy-select from defined Vimscript functions, mappings, and commands.
  • You can fuzzy-select tags from all *.vim files on your machine, or jump to source when the cursor is over the symbol of interest.
  • You can create custom fuzzy-selection tooling, e.g. select from all files in runtimepath that affect the current filetype, with file preview in a sidebar.
  • You can fuzzy select from help-tags (documentation topics) or even Man pages.

§ 3.3 Documentation

The issue of documentation is known to provoke a more vocal response from the Emacs community, which feels strongly protective of it's allegedly brilliant documentation and ways of accessing it.
While there's doubtless virtues to the Emacs documentation system, we believe the Vim one to be, as a bottom line, superior, due to the following aspects:
  • Coherent and thoroughly cross-linked (to the level of CLHS) base manual includes and embraces documentation on all the different aspects (such as the enumerations of functions, commands, variables, operators, motions, keymappings, ...), and is the first thing that opens when you issue :help something. You can start reading help on :wq and wake up at 3 a.m. learning how QuickFix is different from the Location List. Emacs manual exists separately from the function docs, latter being barebones docstrings, often with no usage examples. The links between concepts in the manual are exceedingly sparse: you are intended to search against the documentation with topics you consider plausible that it may have.
  • The documentation standard imposed by the help file syntax provides a clear guidance to the plugin authors, leading to you, the user, not having to stumble across a disjointed arduous incoherent rant shoved into a single enormous README.md, inaddressible from any documentation tool within your editor.
There is certainly a lot to be said for having much of the editor's implementation source available a keypress away and written in the same language as the user's configuration, however this in our eyes is a different, however important, feature, that does not excuse the lackluster documentation. Code can explain how the things are done, however it won't give you an overview of related concepts or a vision of why the things are being done in the first place.
As we view Vim, first and foremost, as a source of domain knowledge for text editing, it is natural that the documentation is of key importance to conveying this knowledge.

§ 4. DSL

§ 4.1 Languages

There are 3 languages that can be involved when interacting with the editor, or when composing Vim functions: ed-like commands, vi-like series of keypresses, and vimscript functions.
All of these have their place and are not necessarily easily replaced by s-expressions, at least not on value-per-keypress basis. The idea that is presented by having such a panic inducing amount of syntax, is that we can interact with text on different levels of abstraction.

§ 4.1.1 Ex Commands

It would have been wasteful if we manually typed out a corresponding Lisp call when we wanted to move our cursor one character to the right, and so many editors provide cursor movement keybinds.
The ed-like commands are a step above that: these are largely a standard DSL found in many other places, notably sed/grep~, and use the familiar regex syntax. The way we call the commands is largely similar to Emacs'es M-x, however the : interface is much more of a first class citizen: we have editable history, access to registers, remappable keys, and argument completion. We can :call functions from this interface as well.

§ 4.1.2 Vi Keys

These have largely entered the public awareness, as well as were adopted by the other editors outside the Vim ecosystem, however there are still things to be said about the ever elegant operator-textobject syntax.
The thing that is perhaps not immediately obvious beyond the abililty to delete a word with dw, is that we can do anything to anything by providing custom textobjects and operators, and the system will seamlessly enrich every new textobject you add with all the possible operators that exist, and every new operator - with all the possible textobjects that it can be applied to.
This approach, as the careful reader might have already anticipated, works wonders with the possibilities of structural editing offered by the s-expression syntax.
To facilitate creation of user-defined operators and textobjects, see the following two github.com/kana's plugins:
On a side note, we want to underline the importance of the Japanese community (among others!) to the exploration of the furthest reaches of our Vim understanding, which simply cannot be an accident given it's rich involvement with the Common Lisp ecosystem as well.

§ 4.1.3 Vimscript

The awkward energy presented by Vimscript, if perhaps not reaching the truly mind shattering levels of shell syntax, is often cited by both Vim proponents and the outsiders as their number one gripe with the editor.
A plethora of solutions have been researched and continue to be a hot conversation topic even recently with the proposed changes, known as Vim9 syntax.
Historically Vim provided API to interact with Python, Ruby, Perl, Lua, Tcl, and Scheme, to the various degrees of success, effectively serving as an interactive evaluation environment for these languages, same as Emacs is to Emacs Lisp. This support however is under intention of being phased out in favor of attempting the more performant and supportable Vim9.
Also notable in this context are two developments coming from the Neovim community, which itself is discussed in more detail further down the document:
  • First-class support for Lua, aiming to provide a more performant and supportable alternative to Vimscript for editor configuration;
  • First-class MsgPack API for remote, asynchronous editor scripting.
Many users have taken with enthusiasm the promise of rewriting their configuration in Lua, and others have taken it yet a step further by providing support for Fennel (s-expression layer over Lua) to be used seamlessly for editor configuration and plugin writing.
Others, including us here at Lisp Advocates, put more faith in the opportunities offered by the MsgPack API, such as this Common Lisp-side client library of cl-neovim, available from the Quicklisp repository.

§ 4.2 Window Management

Deserving a brief mention are the window management facilities offered by Vim, which for us here at Lisp-Adv take their place in the following tower of abstractions of decreasing scope, where the former contain the latter:
  • X11 sessions;
  • Window Manager Tags (often known as workspaces);
  • Floating Quaketerm-like terminals;
  • Tmux Sessions (detachable and independent from X session relaunch);
  • Tmux Tabs (known as Tmux Windows);
  • Vim sessions;
  • Vim Tabs (within a session);
  • Vim Windows (splits within a tab);
  • Vim Buffers (loaded buffers, not necessarily displayed).
Inclusion of Tmux into the mix allows for arbitrarily sending Tmux tabs or commands between Tmux sessions. Quaketerm-style terminals imply them being summoned with a single keypress, often with a corresponding Vim session already open. Relevant sxhkd.
Vim's Window Management facilities, even within a single tab, are known to be robust and comprehensive, allowing us to comfortably work with pretty insane amounts of open splits within a single tab, often arranged in up to 4 columns multiple splits each. We trust that someone with a more expensive monitor and a wider cone of perception can reach truly fear-instilling levels of productivity, all without having to switch the context beyond a single Vim tab.
Additionally, both Vim and Neovim offer a full-fledged built-in terminal, capable of running any terminal applications. We often use it with the Vifm file manager, to have the full two-pane file management power at our fingertips, without leaving Vim. Unfortunately the promising Browsh project has not seen the support it deserves, and so the terminal-based web browsing is limited to the more established tools such as lynx) or w3m.

§ 4.3 Dimension Travel

Much of the Vim tooling is focused on enabling the user to travel along the hidden dimensions, piercing the fabric of reality, and interweaving between each other.
You can think of these as elevators, which allow moving up and down, as well as jumping to a specific floor.
Examples of such dimensions include:
  • Vim Marks (and Markers, as further expanded on by vim-signature). Move alphabetically, or spatially, to the nearest Marks, or between the instances of the same Marker, as well as jump to any Mark directly;
  • Jump History, expanded upon by vim-exjumplist;
  • Taglist (yep, the jumps you made between tags can be accessed separately);
  • Changelist;
  • Lint errors from dedicated tools or LanguageServers;
  • Spellcheck errors. We hope there aren't many that we missed in this document. That'd be embarrassing;
  • Git hunks, using vim-gitgutter;
  • Custom targets made with vim-patternjump. This can be used to e.g. jump between nearest headings in markdown documents;
  • Fuzzy selecting from the lines in the document, filtered by a certain query. This can be used to e.g. fuzzy jump between vim-plug definitions in your .vimrc;
  • Literally, portal.vim.

§ 5. Plugins

§ 5.1 Community

There is a lot to be said for having instant free access to unlimited ingenuity of the human species simply by virtue of using extensible software that a lot of hackers enjoy working on. This will forever be the limiting factor of embarking on any custom editor project: the existing editors are among the most extended applications that humanity has known, and there are more lines of Emacs Lisp in the wild than there are atoms in the universe.
This is part of the reason Neovim has chosen Vim as a base: building a modern editor makes a lot more sense if it gets to benefit from the existing ecosystem.
Vim provides a composable model for the plugins to fit in, rather than more of a blank slate offered by Emacs. The culture of creating and sharing composable textobjects and operators continues to intrigue and invigorate well past the times of being driven by the thrill of discovery.

§ 5.2 Configuring Plugins

Moving beyond the less pronounced approach of squashing all of your configuration right there with the plugin definitions, we can recommend using the following approach:
Plug '~/.vim/conf/_vim-sexp/' Plug 'guns/vim-sexp' 
Where the top line points to a git-controlled directory containing the plugin settings, structured as a normal Vim plugin. Benefits of such approach include taking full advantage of the Vim directory structure described in § 2.2, as well as solving the issue of removing the configuration along with respective plugins or tracking it down after removal.

§ 5.3 Common Lisp Integration

Common Lisp integration is currently offered by two competing plugins of about the same level of intricacy: Slimv and Vlime, the comparisons between which have been discussed at length earlier in a different thread.
Lisp Advocates here will take upon itself the responsibility of officially endorsing Vlime, as a more modern and maintainable approach, designed with more awareness of the ecosystem at large.
However it is paramount to maintain that having the privilege of choice is also extremely beneficial.

§ 6. Epilogue

§ 6.1 A case for Emacs

Not to be overshadowed by our indulgent critique, the value offered by Emacs speaks for itself and requires no lengthy introduction.
  • Emacs Lisp allows for higher degree of customization that can be attached to existing behavior provided by plugins or the base library. Vim provides 106 and Neovim provides 109 events which can be used as triggers for autocommands. The granularity of addressing the behavior of a particular function each time it fires, without creating your own wrapper, is simply not available.
  • Org-mode is a unique and extensive offering, and if you happen to have zero investment in any knowledge management tools, this is the ultimate highest bang for your buck that can be had around the known universe. The immense amount of existing functionality (such as per-todo-item in-place timetracking, scheduling and various agenda options) will please even the most German of our readers, and the established support for compilation and tangling will forever dwarf the competition. However it is worth being aware that these enormous systems are built upon the frail foundation of plaintext human language with markup, and may not withstand the test of time when we humans finally brave the gap and start talking to each other in s-expressions.
  • Magit + dired do provide a few tricks that are not on offer by the plethora of intercompatible Git-related Vim plugins, and Magit has enjoyed the periods of it's author working on it full time, it having been supported by the widely publicized Kickstarter campaigns. Overall however we want to mention that the differences are along the fringes of the functionality, and the general (almost entirely outclassed by vim-gitgutter) status-window workflow has been a known feature in Vim community for much longer than many of the vocal Magit fans might care to realize.
  • As a platform for building GUI interfaces into your Lisp machine, Emacs is pretty indispensable. There are no GUI widgets in Vim windows, and so the support for things like Reddit or Twitter would have to be built in a separate GUI program, that would itself embed the Vim editing window. Which might actually be exactly what you are after, if you're not that big into Emacs as a Lisp implementation. Neovim is specifically designed to be a client-server application, able to interact with arbitrary frontends.
Additionally, the points described above are to be seen from the point of view of an open-minded Lisp Advocate with a lot of time and a lot of raw drive for perfection on their hands. If the choice stands between Emacs or Nothing, we choose Emacs every time, and if the choice stood between 15 thousand lines of Emacs configuration and 0 lines of Vim, we'd be in one hell of a pickle.
The goal of this article is simply to spread the domain-relevant information to the level that it is worth being pursued: there is something to be learned from this for everyone.

§ 6.2 Neovim

An alternative community-driven Vim distribution has substantially diverged from the mainline and is known for consistently driving the innovation, while still providing full support for your Vimscript configuration. Both editors can be supported by the same set of config files and run mostly the same plugins, however the future of such support is certainly vague. One thing is definite: Neovim community is serious about what they are doing.
Neovim was first to introduce the built-in terminal emulator, async job control, and floating windows, which were all later realized separately in the mainline Vim as well. Currently Neovim community is working on building the first-class LSP support into the editor.
The client-server and MsgPack API functionality offered by Neovim holds a lot of promise for the Common Lisp community, as discussed earlier in § 4.1.3.

§ 6.3 Conclusion

Perceiving the text editor as a platform that draws from a greater community is a valid and valuable approach for Lisp Advocates, and is similar to seeing a Linux or BSD distribution as a window into their respective ecosystems, or a platform such as Reddit - as a window into the greater community of vocal thinkers, as well as an instrument for ordering, accessing and sharing valuable information.
We are here to raise the skyscrapers on Mars, construct free floating bases to withstand 400 km/hour winds in the upper layers of the Venus atmosphere, and ultimately fill the universe with computing matter within 200 years from the present day.
Fortune favors the brave, and we will not squander our esteemed ancestors' heritage on trinkets.
submitted by LispAdvocates to lispadvocates [link] [comments]


2020.02.21 18:34 manudich Need help with CIRCOS

Dear all, I have installed circos except on missing module that is SVG then I tried to install it with cpan shell but it says something like that... please help me when I tried to install module screen says this
Reading '/home/nishat/.cpan/Metadata' Database was generated on Fri, 21 Feb 2020 13:17:03 GMT Running install for module 'SVG' Checksum for /home/nishat/.cpan/sources/authors/id/M/MA/MANWASVG-2.84.tar.gz ok Scanning cache /home/nishat/.cpan/build for sizes ............................................................................DONE 'YAML' not installed, will not store persistent state Configuring M/MA/MANWASVG-2.84.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for SVG Writing MYMETA.yml and MYMETA.json MANWASVG-2.84.tar.gz /usbin/perl Makefile.PL INSTALLDIRS=site -- OK Running make for M/MA/MANWASVG-2.84.tar.gz cp lib/SVG/Extension.pm blib/lib/SVG/Extension.pm cp lib/SVG/XML.pm blib/lib/SVG/XML.pm cp lib/SVG/Element.pm blib/lib/SVG/Element.pm cp lib/SVG.pm blib/lib/SVG.pm cp lib/SVG/DOM.pm blib/lib/SVG/DOM.pm Manifying 5 pod documents MANWASVG-2.84.tar.gz make -- OK Running make test PERL_DL_NONLAZY=1 "/usbin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/.t t/00-load.t ................... 1/5 # Testing SVG 2.84, Perl 5.026001, /usbin/perl t/00-load.t ................... ok t/00-report-prereqs.t ......... #

Versions for all modules listed in MYMETA.json (including optional ones):

=== Configure Requires ===

Module Want Have

------------------- ---- ----

ExtUtils::MakeMaker any 7.24

strict any 1.11

warnings any 1.37

=== Build Requires ===

Module Want Have

------------------- ---- --------

ExtUtils::MakeMaker any 7.24

File::Spec any 3.67

Test::More 0.94 1.302073

strict any 1.11

warnings any 1.37

=== Runtime Requires ===

Module Want Have

------------ ---- -------

Exporter any 5.72

Scalar::Util any 1.46_02

constant any 1.33

parent any 0.236

strict any 1.11

vars any 1.03

warnings any 1.37

t/00-report-prereqs.t ......... ok t/01-loadsvg.t ................ ok t/03-render.t ................. # add circle t/03-render.t ................. ok t/04-inline.t ................. ok t/05-processinginstruction.t .. ok t/06-doctype.t ................ ok t/07-extension.t .............. ok t/08-looknfeel.t .............. ok t/09-script.t ................. ok t/10-autoload.t ............... ok t/11-customtags.t ............. ok t/12-elementid.t .............. ok t/13-duplicateids.t ........... ok t/14-attributes.t ............. ok t/15-parentage.t .............. ok t/16-siblings.t ............... ok t/17-tagtypes.t ............... ok t/18-filter.t ................. ok t/19-style.t .................. ok t/20-anchor.t ................. ok t/21-polygon.t ................ # a five-sided polygon t/21-polygon.t ................ ok t/22-xlink.t .................. ok t/23-xmlescape.t .............. ok t/30-shapes.t ................. ok t/duplicate_credits.t ......... ok All tests successful. Files=26, Tests=125, 1 wallclock secs ( 0.07 usr 0.02 sys + 0.96 cusr 0.10 csys = 1.15 CPU) Result: PASS MANWASVG-2.84.tar.gz make test -- OK Running make install Manifying 5 pod documents !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Can't create '/uslocal/man/man3' Do not have write permissions on '/uslocal/man/man3' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1. Makefile:818: recipe for target 'pure_site_install' failed make: *** [pure_site_install] Error 13 MANWASVG-2.84.tar.gz

make install -- NOT OK

You may have to su to root to install the package (Or you may want to run something like o conf make_install_make_command 'sudo make' to raise your permissions.Failed during this command: MANWASVG-2.84.tar.gz : install NO
Every help you can give i would be very thankful.
submitted by manudich to bioinformatics [link] [comments]


2018.10.10 13:47 baxbear community/powerline-fonts

SC\\\_OFF
Where can I find the powerline fonts installed with pacman using yaourt as aur-helper?

\\\​

I installed both packages (powerline + powerline-fonts) with my package manager and added the lines provided by https://wiki.archlinux.org/index.php/Powerline to my .zshrc problem is that my /etc/vconsole.conf file has set a font which isn\\\'t compatible with powerline. To change it I tried to look up the newly installed fonts but I am not able to find them. Can somebody help me with that?

(I really don\\\'t want to reverse the installation and do it manually, I want my package manager to manage it.

\\\​

Thank you very much in advance.
SC\\\_ON
@Edit:
I gave up on terminal + zsh fonts - read like thousand threads about bug fixing and getting the symbols and decided that the old terminal style was fine without powerline. But I still want to setup powerline in my vim (vim airline again).
Zsh is showing some symbols but the bars inbetween are not in the same color (same for vim in tty shell) - they aren't colored at all just normal background behind letters. URxvt isn't showing any symbols like vim with vim airline in URxvt. Switched URxvt back to Ubuntu Mono. Can somebody give me a clue how to fix atleast my vim airline symbols?


URxvt - Xdefault settings:
URxvt.termName: rxvt-unicode Rxvt.saveLines: 5000 URxvt.scrollBar: false URxvt.foreground: white URxvt.background: black URxvt.secondaryScroll: true URxvt.allow_bold: true ! URxvt*font: xft:bitstream\ vera\ sans\ mono\ for\ powerline:bold:size=12:antialias=true:hinting=true ! URxvt*boldFont: xft:bitstream\ vera\ sans\ mono\ for\ powerline:bold:size=12:antialias=true:hinting=true ! URxvt*letterSpace: -8 ! Meslo Setup !URxvt.allow_bold: false !URxvt*font: xft:meslo lg s for powerline:regular:pixelsize=18 !URxvt*imFont: xft:meslo lg s for powerline:regular:pixelsize=18 !URxvt*letterSpace: -2 ! Source Code Pro Setup ! URxvt.allow_bold: true ! URxvt*font: xft:source code pro for powerline:bold:size=12:antialias=true ! URxvt*imFont: xft:source code pro for powerline:regular:pixelsize=24:antialias=true ! URxvt*boldFont: xft:source code pro for powerline:semibold:pixelsize=24:antialias=true ! URxvt*italicFont: xft:source code pro for powerline:italic:pixelsize=24:antialias=true ! URxvt*boldItalicFont: xft:source code pro for powerline:semibold:italic:pixelsize=24:antialias=true ! URxvt*letterSpace: -6 ! DejaVu Sans Mono Setup ! URxvt.allow_bold: true ! URxvt*font:xft:dejavu\ sans\ mono\ for\ powerline:size=12:antialias=true ! URxvt*font:xft:Terminess\ Powerline:size=12 ! URxvt*imFont: xft:dejavu sans mono for powerline:pixelsize=24:antialias=true ! URxvt*boldFont: xft:dejavu sans mono for powerline:bold:pixelsize=24:antialias=true ! URxvt*italicFont: xft:dejavu sans mono for powerline:italic:pixelsize=24:antialias=true ! URxvt*boldItalicFont: xft:dejavu sans mono for powerline:bold:italic:pixelsize=24:antialias=true ! URxvt*letterSpace: -1 ! Ubuntu Mono URxvt.allow_bold: true URxvt*font:xft:Ubuntu Mono:bold:size=16:antialias=true ! Inconsolata Setup !URxvt.allow_bold: true !URxvt*font: xft:inconsolata for powerline:regular:pixelsize=18 !URxvt*imFont: xft:inconsolata for powerline:regular:pixelsize=18 !URxvt*boldFont: xft:inconsolata:bold:pixelsize=18 !URxvt*letterSpace: -1 urxvt*perl-lib: /uslib/urxvt/perl/ urxvt*urlLauncher: /usbin/google-chrome urxvt*matcher.pattern.1: \\bwww\\.[\\w-]+\\.[\\w./?&@#-]*[\\w/-] URxvt.lineSpace: 1 URxvt.perl-ext-common: default,matcher URxvt.urlLauncher: google-chrome URxvt.matcher.button: 1 URxvt.tabbed.saveLines: 1000 URxvt.tabbed.scrollBar: false URxvt.tabbed.tabbar-fg: 3 URxvt.tabbed.tabbar-bg: 0 URxvt.tabbed.tab-fg: 0 URxvt.tabbed.tab-bg: 1 URxvt.tabbed.secondaryScroll: true !URxvt.tabbed.font: xft:bitstream\ vera\ sans\ mono\ for\ powerline:pixelsize=11:hinting=true URxvt*inheritPixmap: true URxvt*shading: 40 !URxvt.iso14755: false URxvt*dynamicColors: on URxvt*transparent: true URxvt.keysym.C-Up: font-size:increase URxvt.keysym.C-Down: font-size:decrease URxvt.keysym.C-S-Up: font-size:incglobal URxvt.keysym.C-S-Down: font-size:decglobal URxvt.keysym.C-equal: font-size:reset URxvt.keysym.C-slash: font-size:show !URxvt*color0: #000000 // black !URxvt*color1: #B40000 // red !URxvt*color2: #00AA00 // green !URxvt*color3: #AAAA00 // yellow !URxvt*color4: #5555AA // blue !URxvt*color5: #AA00AA // magenta !URxvt*color6: #00AAAA // cyan !URxvt*color7: #AAAAAA // white !URxvt*color8: #555555 // black (now and below: bright) !URxvt*color9: #FF0000 // red !URxvt*color10: #00FF00 // green !URxvt*color11: #FFFF00 // yellow !URxvt*color12: #6464FF // blue !URxvt*color13: #FF00FF // magenta !URxvt*color14: #00FFFF // cyan !URxvt*color15: #FFFFFF // white !! special !URxvt.cursorColor: #c5c8c6 ! !! black !URxvt.color0: #282a2e !URxvt.color8: #373b41 ! !! red !URxvt.color1: #a54242 !URxvt.color9: #cc6666 ! !! green !URxvt.color2: #8c9440 !URxvt.color10: #b5bd68 ! !! yellow !URxvt.color3: #de935f !URxvt.color11: #f0c674 ! !! blue URxvt*color12: #00FF00 // bright green !URxvt.color4: #5f819d !URxvt.color12: #81a2be ! !! magenta !URxvt.color5: #85678f !URxvt.color13: #b294bb ! !! cyan !URxvt.color6: #5e8d87 !URxvt.color14: #8abeb7 ! !! white !URxvt.color7: #707880 !URxvt.color15: #c5c8c6 
My .vimrc:
" 'compatible' is not set (whatever that means - needed for netrw FM) set nocp set rtp=~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after call plug#begin('~/.vim/plugged') " colorschemes Plug 'bounceme/base.vim' Plug 'roosta/vim-srcery' Plug 'vim-scripts/twilight256.vim' Plug 'vim-scripts/industry.vim' Plug 'scwood/vim-hybrid' Plug 'carakan/new-railscasts-theme' Plug 'ShengYun/vim-dbs-easycolour' Plug 'vim-scripts/MatlabFilesEdition' Plug 'vim-scripts/mlint.vim' Plug 'jelera/vim-javascript-syntax' Plug 'pangloss/vim-javascript' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'vim-latex/vim-latex' Plug 'vim-syntastic/syntastic' " Plug 'gcmt/taboo.vim' call plug#end() " activate syntax highlighting syntax on " tex activate spell check au FileType tex,txt,markdown,bib setlocal spell spelllang=en_us colorscheme desert " colorscheme slate " set leader key to comma let mapleader="," " Enable mouse use in all modes set mouse=a " autocompletition set completeopt=menu,menuone,longest set omnifunc=syntaxcomplete#Complete " clipboard " FIXME: should be unnecessary atleast it was on my old installations but just in " case I added it until i get it working then I recheck set clipboard=unnamedplus " Use neocomplete. let g:neocomplete#enable_at_startup = 1 " Use smartcase. let g:neocomplete#enable_smart_case = 0 " Set minimum syntax keyword length. let g:neocomplete#sources#syntax#min_keyword_length = 3 " let g:neocomplete#enable_fuzzy_completion = 0 " airline let g:airline_powerline_fonts = 1 " let g:airline_theme='murmur' let g:airline_theme='dark' let g:airline#extensions#whitespace#enabled=0 let g:airline#extensions#wordcount#enabled=0 let g:airline#extensions#syntastic#enabled=1 let g:airline_section_c='' "let g:airline_section_x='' let g:airline_skip_empty_sections = 1 " tabline configuration let g:airline#extensions#tabline#enabled=1 let g:airline#extensions#tabline#show_splits=0 let g:airline#extensions#tabline#show_buffers=0 let g:airline#extensions#tabline#show_tabs=1 let g:airline#extensions#tabline#exclude_preview=1 let g:airline#extensions#tabline#show_tab_nr=1 let g:airline#extensions#tabline#tab_nr_type=1 let g:airline#extensions#tabline#show_tab_type=1 " let g:airline#extensions#tabline#formatter='unique_tail_improved' let g:airline#extensions#tabline#fnamemod=':t' let g:airline#extensions#tabline#fnamecollapse=1 let g:airline#extensions#tabline#buffer_min_count=0 let g:airline#extensions#tabline#show_close_button=0 " taboo.vim " let g:taboo_renamed_tab_format='%l%m' let g:taboo_modified_tab_flag='+' let g:taboo_tabline=0 let g:taboo_unnamed_tab_label='[No Name]' inoremap  pumvisible() ? "\" : "\" " show incomplete last line set display=lastline " show existing tab with 4 spaces width set tabstop=4 " when indenting with '>', use 4 spaces width set shiftwidth=4 set softtabstop=0 set smarttab " turn on line numbering set number " Highlight search set hls " Allow saving of files as sudo when I forgot to start vim using sudo cmap w!! w !sudo tee > /dev/null % " linebreak for not splitting words set wrap linebreak nolist set smartindent set autoindent set cindent set breakindent showbreak=.. set foldlevelstart=20 imap  k " override vim indentng with astyle au FileType c,cpp,java setlocal equalprg=astyle set grepprg=grep\ -nH\ $* let g:tex_flavor="latex" let g:Tex_ViewRule_pdf='okular' let g:Tex_CompileRule_pdf='pdflatex -interaction=nonstopmode $*' let g:Tex_DefaultTargetFormat='pdf' set fencs=ucs-bom,utf-8,default,latin1 set enc=utf-8 set showmode set visualbell set t_vb= " set laststatus=2 " set statusline= " set statusline+=%-3.3n\ " buffer number " set statusline+=%f\ " filename " set statusline+=%h%m%r%w " status flags " set statusline+=\[%{strlen(&ft)?&ft:'none'}] " file type " set statusline+=%= " right align remainder " set statusline+=0x%-8B " character value " set statusline+=%-14(%l,%c%V%) " line, character " set statusline+=%<%P "="" file="" position="" Show="" line="" number,="" cursor="" position.="" set="" ruler="" Display="" incomplete="" commands.="" showcmd="" To="" insert="" timestamp,="" press="" F3.="" nmap="" a=strftime("%Y-%m-%d %a %I:%M %p") " vim syntastic " set statusline+=%#warningmsg# " set statusline+=%{SyntasticStatuslineFlag()} " set statusline+=%* let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 let g:syntastic_quiet_messages={'level':'warnings'} let g:syntastic_mode_map = { \ "mode": "active", \ "passive_filetypes": ["tex", "m"] } " auto highlighting of special tags if has("autocmd") " Highlight TODO, FIXME, NOTE, etc. if v:version > 701 autocmd Syntax * call matchadd('Todo', '\W\zs\(TODO\FIXME\CHANGED\XXX\BUG\HACK\COMMENT\)') autocmd Syntax * call matchadd('Debug', '\W\zs\(NOTE\INFO\IDEA\)') endif endif nmap  mzgg=G`z nmap  :w:ter make c nmap  :wa nmap .wa :wa nmap .w :w nmap bt :bn  nmap bT :bp nmap B :ls:tab sb nmap B :ls:tab sb nmap b :ls:b nmap e :Ex imap e :Ex vnoremap y "+y nnoremap y "+y nnoremap yy "+yy vnoremap p "+p nnoremap p "+p noremap se :set spell spelllang=en_us noremap sg :set spell spelllang=de_de noremap sn :set nospell noremap  :tabnext noremap  :tabprev noremap  gj noremap  gk vnoremap   nnoremap   inoremap   
In case there is still hope for my zsh here is my config for this too:
export VISUAL='vim' # Lines configured by zsh-newuser-install HISTFILE=~/.histfile HISTSIZE=4000 SAVEHIST=10000 setopt autocd extendedglob bindkey -e # End of lines configured by zsh-newuser-install # The following lines were added by compinstall zstyle :compinstall filename '/home/username/.zshrc' source /usshare/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh # ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=4e4e4e' ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=3' autoload -Uz compinit compinit # End of lines added by compinstall autoload -Uz promptinit promptinit PROMPT='>' RPROMPT='[%F{green}%~%f]' autoload -U colors colors # Powerline setup # powerline-daemon -q # . /uslib/python3.7/site-packages/powerline/bindings/zsh/powerline.zsh # Powerlevel9k (just trying it out of despair in hope that # it fixes all my problems # POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs) # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time) alias reboot='sudo reboot' alias shutdown='sudo shutdown now' alias ls='ls --color=auto' alias less='/usshare/vim/vim80/macros/less.sh' alias nano='vim' alias vi='vim' alias gvim='vim' alias emacs='vim' alias cat='vimcat' alias gcal='gcalcli' alias gcalw='gcalcli calw' alias reflector='reflector --verbose -l 200 -n 20 -p http --sort rate --save /etc/pacman.d/mirrorlist' alias rm='rm -i' # Key binding to ctrl+z for bg fg _zsh_cli_fg() { fg; } zle -N _zsh_cli_fg bindkey '^Z' _zsh_cli_fg bindkey '^ ' autosuggest-accept LANG="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_CTYPE="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_ALL="en_GB.UTF-8" [[ -f ~/.profile ]] && . ~/.profile 
@Edit
Just noticed that Gvim is displaying some powerline symbols even when they are a bit (or a bit more) off so it looks kinda weird. Still some are not displayed and I don't care about GVim, I need Vim to work...
submitted by baxbear to archlinux [link] [comments]


2017.07.04 16:11 Eldrik [zsh] ricing zsh completions

[zsh] ricing zsh completions submitted by Eldrik to unixporn [link] [comments]


2017.07.04 16:06 Eldrik organizing completions by category

organizing completions by category submitted by Eldrik to zsh [link] [comments]


2013.03.10 06:49 ragingcomputer Semi-automated batch DVD ripping

I spent the last week tinkering together something I'm calling The RIPINATOR. I'm not sure if this is very useful to anyone else, but I learned a thing or three about ripping DVDs over the past couple weeks. I'm still not happy with it, but it worked well enough to have ripped and encoded my ~80 disc movie collection, and is still chugging through my fiancee's series of TV shows.
It uses Perl, DVDFab 8, Handbrake, nircmd, and an old Rimage RAS 13 Autoloader.
I have a few questions... Is there anything else like this? What programs are available for organizing and renaming movies / TV shows?
If you're intereste, here's a link to my blog post with more info, and a short video.
http://www.ragingcomputer.com/2013/03/the-ripinator-semi-automated-dvd-ripping
http://www.youtube.com/watch?v=o96uuzG27dk
submitted by ragingcomputer to cordcutters [link] [comments]


2010.11.12 00:42 Perceptes Learning Perl is making me appreciate Ruby even more

Dynamic getters and setters in Perl:
sub AUTOLOAD { my @elements = qw(color age weight height); our $AUTOLOAD; if ($AUTOLOAD =~ /::(\w+)$/ and grep $1 eq $_, @elements) { my $field = ucfirst $1; { no strict 'refs'; *{$AUTOLOAD} = sub { $_[0]->{$field} }; } goto &{$AUTOLOAD}; } elsif ($AUTOLOAD =~ /::set_(\w+)$/ and grep $1 eq $_, @elements) { my $field = ucfirst $1; { no strict 'refs'; *{$AUTOLOAD} = sub { $_[0]->{$field} = $_[1] }; } goto &{$AUTOLOAD}; } else { croak "$_[0] does not understand this method\n"; } } 
In Ruby:
attr_accessor :color, :age, :weight, :height 
Yeah.
submitted by Perceptes to ruby [link] [comments]


http://swiebodzin.info