Using an external editor
- Median Joe
- Posts: 15
- Joined: Tuesday 8th November 2022 7:30pm
- Location: Britain
Using an external editor
When writing GUI scripts it makes sense to use the IDE, but for command line programs is there a way to run them directly from the Linux console, having created the script in an external editor? Thanks in advance for any help!
- cogier
- Site Admin
- Posts: 1129
- Joined: Wednesday 21st September 2016 2:22pm
- Location: Guernsey, Channel Islands
Re: Using an external editor
Hi Median Joe and welcome to the forum.
You can use any text editor to create your code. You need to put #!/usr/bin/env gbs3 as the first line of the file and once you have saved it right-click and make the file 'Executable'.
There is a load of help here.
You can use any text editor to create your code. You need to put #!/usr/bin/env gbs3 as the first line of the file and once you have saved it right-click and make the file 'Executable'.
There is a load of help here.
- Median Joe
- Posts: 15
- Joined: Tuesday 8th November 2022 7:30pm
- Location: Britain
Re: Using an external editor
Hi cogier,
Many thanks! I've been using vim for some years and it makes conventional editing hard work by comparison.
I found a basic syntax file for Gambas here here.
Hugely impressed by Gambas, Benoit is obviously some kind of God. I write a lot of number crunching code and was concerned that being an interpreted language, Gambas might not be up to the job, but I needn't have have worried. Even without using JIT it's fast enough for my needs.
Thanks again.
Many thanks! I've been using vim for some years and it makes conventional editing hard work by comparison.
I found a basic syntax file for Gambas here here.
Hugely impressed by Gambas, Benoit is obviously some kind of God. I write a lot of number crunching code and was concerned that being an interpreted language, Gambas might not be up to the job, but I needn't have have worried. Even without using JIT it's fast enough for my needs.
Thanks again.
Re: Using an external editor
Why not try Geany: http://captainbodgit.blogspot.com/2019/ ... ambas.htmlMedian Joe wrote: ↑Thursday 10th November 2022 11:34am ...I've been using vim for some years and it makes conventional editing hard work by comparison...
- BruceSteers
- Posts: 1619
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Using an external editor
I wrote a script editor in gambas that has a few handy features like...
Uses the gambas gb.form.editor so has the same highlighting as the Gambas IDE and will format some text as the IDE does. (turns then into Then and stuff)
supports bash and gambas scripts
Click a button to toggle executable flag.
External tools (like pluma external tools) create scripts like plugins to do functions to the document/selected text.
A Run button to test the scripts.
Experimental key macro recorder. record keystrokes and repeat them at the press of a button. (works better with gtk than qt)
Lists the functions in a list , clicking a function in the list moves the cursor to it.
If you drop a .desktop file on it that points to a script it asks if you want to edit the ,desktop file or the file it points to.
Written in gambas, and you know gambas so you can modify the source at will.
https://gitlab.com/bsteers4/scripted
It's a bit WIP but i don't have many problems with it and use it all the time, it's especially handy for writing scripts as that's what it was made for.
The only real bug I've not been able to fix yet is sometimes when closing a tab they all close? so i generally make sure i've saved edits before closing tabs.
Uses the gambas gb.form.editor so has the same highlighting as the Gambas IDE and will format some text as the IDE does. (turns then into Then and stuff)
supports bash and gambas scripts
Click a button to toggle executable flag.
External tools (like pluma external tools) create scripts like plugins to do functions to the document/selected text.
A Run button to test the scripts.
Experimental key macro recorder. record keystrokes and repeat them at the press of a button. (works better with gtk than qt)
Lists the functions in a list , clicking a function in the list moves the cursor to it.
If you drop a .desktop file on it that points to a script it asks if you want to edit the ,desktop file or the file it points to.
Written in gambas, and you know gambas so you can modify the source at will.
https://gitlab.com/bsteers4/scripted
It's a bit WIP but i don't have many problems with it and use it all the time, it's especially handy for writing scripts as that's what it was made for.
The only real bug I've not been able to fix yet is sometimes when closing a tab they all close? so i generally make sure i've saved edits before closing tabs.
- Attachments
-
- Screenshot at 2022-11-10 13-50-22.png (266.43 KiB) Viewed 4659 times
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- Median Joe
- Posts: 15
- Joined: Tuesday 8th November 2022 7:30pm
- Location: Britain
Re: Using an external editor
Hi stevedee, Geany is a nice editor, in fact I used it before discovering vim. The thing which sets vim apart is the fact that you don't need to take your hands off the keyboard - ever! With a little practice you'll find it much easier than having to keep moving from mouse to keyboard and back again. It takes a little while to build up the muscle memory but when you have it you won't want to use any other editor (which admittedly can be a disadvantage). Type vimtutor in the console for a quick interactive tutorial - you may get hooked!stevedee wrote: ↑Thursday 10th November 2022 12:24pmWhy not try Geany: http://captainbodgit.blogspot.com/2019/ ... ambas.htmlMedian Joe wrote: ↑Thursday 10th November 2022 11:34am ...I've been using vim for some years and it makes conventional editing hard work by comparison...
- Median Joe
- Posts: 15
- Joined: Tuesday 8th November 2022 7:30pm
- Location: Britain
Re: Using an external editor
Hi BruceSteers,BruceSteers wrote: ↑Thursday 10th November 2022 1:04pm I wrote a script editor in gambas that has a few handy features like...
Very impressive! If you add vim bindings I would definitely use it. I continue to be amazed at Gambas and its capabilities. I tried FreePascal with Lazarus for a while but the Gambas IDE is easier to use and I prefer BASIC syntax to Pascal's.
- BruceSteers
- Posts: 1619
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Using an external editor
ew, , i never got on with vim and use nanoMedian Joe wrote: ↑Thursday 10th November 2022 2:52pmHi BruceSteers,BruceSteers wrote: ↑Thursday 10th November 2022 1:04pm I wrote a script editor in gambas that has a few handy features like...
Very impressive! If you add vim bindings I would definitely use it. I continue to be amazed at Gambas and its capabilities. I tried FreePascal with Lazarus for a while but the Gambas IDE is easier to use and I prefer BASIC syntax to Pascal's.
Like i say it's written in gambas and has the KeyPress event so you could probably add any vim bindings you like
And i agree about the other programming environments, i tried a few, all rather complicated, then i found gambas and was amazed at it's simplicity and nice syntax.
PS. to your original question.
There are 2 ways to launch a gambas script created from any editor.
Like Cogier said make the very first line, the "shebang" line, like this...
#!/usr/bin/env gbs3
then set the files executable flag
chmod +x /path/to/my/file.gbs
That file can now either be double clicked to launch or directly run from terminal. the shebang tells it to use gbs3 and it will run because it is executable (on most sytems).
Alternatively you can use gbs3 to run the file without a shebang or being executable.
gbs3 /path/to/my/file.gbs
You can also use various options with the gbs3 command.
gbs3 --help
Compile and execute a Gambas script.
Usage: gbs3 [options][--] [<script file> | <project directory> | - ]
gbs3 --convert-project <input project directory> [<output directory where script is created>]
gbs3 --convert-script <input script> [<output directory where project directory is created>]
gbs3 --plugin <input script> [<output plugin cache directory>]
Options:
-b --buildonly process and compile the script without executing it
-c --nocache force the script compilation (do not check cache)
-e execute the source code provided by the command line ( ':' separator )
-g --debug add debugging information to application
-f --fast use just-in-time compiler
-h --help display this help
-L --license display license
-p --plugin Compile the script, no main, define the class name as script base name entry point _Call(...)
-S --strict fail if 'Public' or 'Sub' are defined without a 'main' function
-t --trace turn on tracing option during execution
-T --terse-listing only print a very terse error report on compile errors
-u --use <components> force component loading ('comp1,comp2...')
-U --unsafe allows jit compiler to generate unsafe faster code
-v --verbose be verbose
-V --version display version
-w --warnings display warnings during compilation
--convert-project convert a simple project to a script
--convert-script convert a simple script to a project
-- stop any further option processing
- read the script from standard input
If at first you don't succeed , try doing something differently.
BruceS
BruceS