wolfgangmehner / bash-support Goto Github PK
View Code? Open in Web Editor NEWEdit Bash scripts in Vim/gVim. Insert code snippets, run, check, and debug the code and look up help.
Edit Bash scripts in Vim/gVim. Insert code snippets, run, check, and debug the code and look up help.
First of all thanks for this amazing plugin (and all of yours) that I use since some years now.
While editing some big shell script (old ksh) and pasting text from the clipboard, when there are variables like ${FOO_BAR}
vim freeze for about 3, 4 seconds, the CPU load sky rocket to 100% and than everything comes back to normal.
I've deactivated everything, piece by piece in my vanilla .vimrc, till I've found that just commenting this autocommand:
au FileType sh let g:sh_fold_enabled=7
It fixes my issue.
It's enough to type fast some variables to trigger the same behaviour.
The above autocommand is at the beginning of my .vimrc, even before to load any other plugins and settings, even before some other general settings like viminfo...
I've tried to go further in the debugging but I don't know what else to do.
I really want to help out, it could be it's a problem on my side, so let me know if I can provide more info.
Thanks a lot for your hard and amazing work!!!
Some details:
$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 11 2018 15:07:02)
Included patches: 1-1696
Compiled by antenore@mom
Huge version with GTK3 GUI. Features included (+) or not (-):
+acl +farsi +mouse_sgr -tag_any_white
+arabic +file_in_path -mouse_sysmouse -tcl
+autocmd +find_in_path +mouse_urxvt +termguicolors
-autoservername +float +mouse_xterm +terminal
+balloon_eval +folding +multi_byte +terminfo
+balloon_eval_term -footer +multi_lang +termresponse
+browse +fork() -mzscheme +textobjects
++builtin_terms +gettext +netbeans_intg +timers
+byte_offset -hangul_input +num64 +title
+channel +iconv +packages +toolbar
+cindent +insert_expand +path_extra +user_commands
+clientserver +job -perl +vertsplit
+clipboard +jumplist +persistent_undo +virtualedit
+cmdline_compl +keymap +postscript +visual
+cmdline_hist +lambda +printer +visualextra
+cmdline_info +langmap +profile +viminfo
+comments +libcall -python +vreplace
+conceal +linebreak -python3 +wildignore
+cryptv +lispindent +quickfix +wildmenu
+cscope +listcmds +reltime +windows
+cursorbind +localmap +rightleft +writebackup
+cursorshape -lua -ruby +X11
+dialog_con_gui +menu +scrollbind -xfontset
+diff +mksession +signs +xim
+digraphs +modify_fname +smartindent +xpm
+dnd +mouse +startuptime +xsmp_interact
-ebcdic +mouseshape +statusline +xterm_clipboard
+emacs_tags +mouse_dec -sun_workshop -xterm_save
+eval -mouse_gpm +syntax
+ex_extra -mouse_jsbterm +tag_binary
+extra_search +mouse_netterm +tag_old_static
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
defaults file: "$VIMRUNTIME/defaults.vim"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -pthread -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lSM -lICE -lm -ltinfo -lelf -lnsl -lselinux -ldl
I have run into a bit of trouble with the Template file. I am attempting to add a hard coded set of default values into the skeleton that is created with a new file. Overall the issue is minor, as it is more of a format problem than a real code bug. It is just frustrating as it makes the generated skeleton look sloppy.
Here is what I am attempting to add:
== Skeleton.script-set == nomenu, below == #set -o nounset # Treat unset variables as an error #set -o pipefai # Any non-zero exits in pipes fail #set -e # Any non-zero exit is a failure #canonicalpath=`readlink -f $0` # Breaks Mac due to readlink differences #canonicaldirname=`dirname ${canonicalpath}`/.. # Breaks Mac #samedirname=`dirname ${canonicalpath}` # Breaks Mac usage() { cat << EOF EOF } while getopts "hx" OPTION; do case ${OPTION} in h) usage ; exit 0 ;; x) export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'; set -x ;; *) echo "Unexpected argument given. Try -h. Used: $@ ; exit 2 ;; esac # --- end of case --- done == ENDTEMPLATE ==
And this is what the generated output looks like:
usage() { cat << EOF EOF } while getopts "hx" OPTION; do case ${OPTION} in h) usage ; exit 0 ;; x) export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'; set -x ;; *) echo "Unexpected argument given. Try -h. Used: $@ ; exit 2 ;; esac # --- end of case --- done
As you can see, I loose some formatting and gain goofed up indents in other areas. What would be the correct way to deal with this in the Template file?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.