2024.03.17 17:05 lvall22 [weechat] searching through a buffer behavior? Vi-like bindings
> Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, typing, xferinput 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
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.
2023.04.03 17:02 0orpheus Strange crashes after TW 20230402 updates
The following 15 NEW packages are going to be installed: [...] libclang-cpp16 libLLVM16 libLLVM16-32bitThe 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.
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.gc39e89fEDIT: Here's the logs I could gather from the affected programs:
2023.03.29 12:18 Ttghtg Error when processing BufWinEnter autocommand
autocmd BufWinLeave * mkview autocmd BufWinEnter * silent loadviewHowever, 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, 33737BMy :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 : 14PS: I tried to hide my :checkhealth in a spoiler tag but it didnt work, what could be a better option in the future?
2023.01.10 00:12 scottchiefbaker Need help with using `$AUTOLOAD` for debug printing
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 outIs there a way to have Perl spit out the original error message that bogus_sub function call would have generated?
2022.12.14 23:42 scottchiefbaker Perl silently fails on improper case of subroutines?
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.
2022.12.12 16:46 rwp0 oo_sub: Enable OOP in supported Perl functions
https://metacpan.org/pod/oo_sub submitted by rwp0 to perl [link] [comments] 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. |
2022.05.17 14:00 Fit-Comparison-6574 Use of inherited AUTOLOAD for non-method Win32::GetACP() is deprecated
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
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_binaryPlugin Manager
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/masteplug.vim- 为了方便大家快速上手,增加了自定义快捷键说明
2020.07.25 13:36 byt1e FZF.Vim :Tags on Windows: how to remove perl dependency?
2020.04.17 12:34 LispAdvocates 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. submitted by LispAdvocates to lispadvocates [link] [comments] § 1. Introduction§ 1.1 IntroductionLisp 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 PurposeThe 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 VimscriptFor 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 PerformanceThere 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 14772To 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 StructureIn 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:
ftplugin/lisp.vim ftplugin/lisp/mappings.vimWhere mappings.vim is but a personal preference, but lisp is a file type.
§ 3. In the grim darkness of the 41st millennium§ 3.1 EvaluationAt 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() endifAs 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
§ 3.3 DocumentationThe 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:
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 LanguagesThere 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 CommandsIt 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 KeysThese 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 VimscriptThe 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:
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 ManagementDeserving 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:
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 TravelMuch 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:
§ 5. Plugins§ 5.1 CommunityThere 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 PluginsMoving 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 IntegrationCommon 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 EmacsNot to be overshadowed by our indulgent critique, the value offered by Emacs speaks for itself and requires no lengthy introduction.
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 NeovimAn 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 ConclusionPerceiving 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. |
2020.02.21 18:34 manudich Need help with CIRCOS
2018.10.10 13:47 baxbear community/powerline-fonts
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: #c5c8c6My .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]' inoremapIn case there is still hope for my zsh here is my config for this too: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
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
2017.07.04 16:11 Eldrik [zsh] ricing zsh completions
submitted by Eldrik to unixporn [link] [comments] |
2017.07.04 16:06 Eldrik organizing completions by category
submitted by Eldrik to zsh [link] [comments] |
2013.03.10 06:49 ragingcomputer Semi-automated batch DVD ripping
2010.11.12 00:42 Perceptes Learning Perl is making me appreciate Ruby even more
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, :heightYeah.