GitHub - fast-ide/fast-ide: ๐บFast Integrated Development Environment ๐ป[maintain...
source link: https://github.com/fast-ide/fast-ide
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
We will be happy to treat you to coffee โ, send us a link to your account
on the ko-fi service in gitter and you can put a star โญ as a reminder for us
Introduction
๐จ The Fast IDE you can only dream of โ
The developer needs three things:
- GitHub account
- Ability to fast develop anywhere and on anything
For the third thing we created the Fast IDE
We believe that development tools should be available to everyone and therefore free of charge โ๏ธ
We've taken tools that have been proven for decades and
added cool new features and integrated them into a single solution ๐
Table of Contents
Instructions
We want to provide you with tools that will help you reach your full potential ๐งโ๐tmux
zsh
brew
neovim
coc.nvim
Available out of the box now:
- C++ 20 (
cmake
) - Python 3 (
pip
) - Golang 1.14 (
go
) - Node.js 12.15 (
npm
)
Run
docker run -it fastide/alpine zsh
Update
# for example update on Ubuntu Focal Fossa ๐ฑ docker run -it fastide/ubuntu:20.04 zsh git clone https://github.com/fast-ide/fast-ide cd fast-ide && ./install.sh
Supported OSs
# see deploy or run section - alpine - centos 8 - debian 10 - fedora 31 - ubuntu 18.04 - ubuntu 20.04
# see install section - macos
Deploy
# for example deploy Fast IDE on your CentOS 8 ๐ง docker pull fastide/centos:8 docker create -ti --name fastide fastide/centos:8 bash docker cp fastide:/home/developer /home/ # docker rm -f fastide sudo useradd developer && sudo passwd developer sudo chown -R developer /home/developer sudo usermod -aG sudo developer # optional su - developer zsh
Install
git clone --recursive https://github.com/fast-ide/fast-ide cd fast-ide/toolbox && make all cd .. && make install
Font settings
FiraCode: https://github.com/tonsky/FiraCode/wiki/Installing
Themes ๐จ
onehalf: vim: https://github.com/sonph/onehalf terminal: https://github.com/sonph/onehalf onedark: # alternative vim: https://github.com/joshdick/onedark.vim terminal: - https://github.com/joshdick/onedark.vim/tree/master/term - https://github.com/denysdovhan/one-gnome-terminal
True color
If you are using a terminal that does not support true color perform the following script for normal display
nvim -c "set notermguicolors" -c "Tmuxline airline" -c "TmuxlineSnapshot! ~/.tmux/line" +q echo "alias o='nvim -c \"set notermguicolors\"'" >> ~/.zshrc
You can check support using the following instruction:
awk 'BEGIN{ s="/\\/\\/\\/\\/\\"; s=s s s s s s s s; for (colnum = 0; colnum<77; colnum++) { r = 255-(colnum*255/76); g = (colnum*510/76); b = (colnum*255/76); if (g>255) g = 510-g; printf "\033[48;2;%d;%d;%dm", r,g,b; printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b; printf "%s\033[0m", substr(s,colnum+1,1); } printf "\n"; }'
Toolbox ๐งฐ
We also have gnupg inside each docker container from the list
If you used the deployment instruction you can install it using your system package manager
Maps
tmux
prefix is ` symbol
<prefix>| split the window vertically
<prefix>- split the window horizontally
<prefix>! move the pane to a separate window
<prefix>n next window
<prefix>p previous window
<prefix>{N} go to the N window (i.e. `3)
<prefix>" show tree
<prefix>s create session
<prefix>r source .tmux.conf config file
<prefix>e switch to fpp mode (see: https://github.com/facebook/PathPicker)
<prefix>Tab clear pane
<prefix>x close pane
<prefix>& close window
Shift-Left resize pane left by 5
Shift-Right resize pane right by 5
Shift-Up resize pane up by 5
Shift-Down resize pane down by 5
Ctrl-H go to the left pane
Ctrl-J go to the bottom pane
Ctrl-K go to the top pane
Ctrl-L go to the right pane
terminal
Ctrl-A go to the beginning of the line
Ctrl-E go to the end of the line
Ctrl-N next insturction from history
Ctrl-P previous insturction from history
Alt-C go to the directory using fuzzy search
Ctrl-R find the insturction using fuzzy search
Ctrl-T find file using fuzzy search
Esc switch to vi mode
# command aliases alias c=vimcat alias o=nvim alias p=echo alias r=clear
nvim
<Leader>
is Space
symbol
You can see all settings in the configuration file
<Leader>ov open nvim config file
normal mode
Ctrl-E down 1 line
Ctrl-Y up 1 line
vv select line
V select to the end of the line
yy yank line
Y yank to the end of the line
mm move line
M move to the end of the line
dd delete line
D delete to the end of the line
H go to the beginning of the line (alias for ^)
L go to the end of the line (alias for $)
zj down half the window
zk up half the window
zz center the window
file manager
<Leader>f open lf file manager (see: https://github.com/gokcehan/lf)
<Leader>Tab open NerdTree (see: https://github.com/preservim/nerdtree)
next
n next search
<Leader>wn next window
<Leader>tn next tab
<Leader>qn next item in quickfix list
<Leader>ln next item in location list
<Leader>bn next bookmark (see: https://github.com/MattesGroeger/vim-bookmarks)
previous
N previous search
<Leader>wp previous window
<Leader>tp previous tab
<Leader>qp previous item in quickfix list
<Leader>lp previous item in location list
<Leader>bp previous bookmark
docs
K run a program to lookup the keyword under the cursor
<Leader>k display the manpage for the keyword under the cursor horizontally
<Leader>v display the manpage for the keyword under the cursor vertically
highlight
<Leader>l highlight a word under the cursor (see: https://github.com/t9md/vim-quickhl)
<Leader>ll toggle show special symbols
<Leader>ls toggle search highlight
edit
<Leader>we edit file in new vertical window
<Leader>te edit file in new tab
<Leader>qe open quickfix list
<Leader>le open location list
open or only
<Leader>wo (only) close all other windows
<Leader>lo (only) close all other tabs
<Leader>qo open quickfix list
<Leader>lo open location list
<Leader>bo open bookmark list
close
<Leader>wd (destroy) close window
<Leader>td (destroy) close tab
<Leader>qd (destroy) close quickfix list
<Leader>ld (destroy) close location list
search
s{char}{char} to move to {char}{char} (see: https://github.com/easymotion/vim-easymotion)
<Leader>fb find buffer (see: https://github.com/junegunn/fzf.vim)
<Leader>ff find file
<Leader>fl find line
<Leader>ft find tag
<Leader>fs find file type
<Leader>fh find find a file among previously opened files
<Leader>sl find line in the current buffer
<Leader>st find tag in the current buffer
\ grep word under cursor (see: https://github.com/mileszs/ack.vim)
preview tag
; preview tag (see: https://github.com/skywind3000/vim-preview)
<Leader>pd (destroy) close preview
<Leader>ft
generates the tags of the file if it is missing
or you can generate it manually if necessary
ctags -R --c++-kinds=+p --fields=+iaS --extras=+q --language-force=C++ # C++ ctags -R --fields=+l --languages=python --python-kinds=-iv # Python gotags -R ./**/*.go > tags # Go ctags -R # JavaScript
Meta
key is Alt
or Option
Ctrl-T switch to resize window (see: https://github.com/simeji/winresizer)
<Leader>ww toogle golden ration mode (see: https://github.com/roman/golden-ratio)
Meta-Up increase the vertical size of the current window
Meta-Down decrease the vertical size of the current window
Meta-Right increase the horizontal size of the current window
Meta-Left decrease the horizontal size of the current window
insert mode
Ctrl-E (like in normal mode)
Ctrl-Y (like in normal mode)
jk switch to normal mode (alias for Esc)
command mode
Ctrl-A (like in terminal)
Ctrl-E (like in terminal)
Ctrl-N (like in terminal)
Ctrl-P (like in terminal)
visual mode
Shift-S surround object (see: https://github.com/tpope/vim-surround)
improved maps
. added support for visual mode
/ added winking and centering
? added winking and centering
> added support for continuous shifting
< added support for continuous shifting
b added support for camel notation
e added support for camel notation
w added support for camel notation
tmux intergation
<Leader>vo open vimux runner (see: https://github.com/benmills/vimux)
<Leader>vp send selected text to vimux runner
" send text from the cursor to the end of the line to vimux runner
Plans ๐ก
We want to change the way we think about the development process,
make it fast, convenient, collaborative, and accessible to everyone
One of the key development vectors is providing the ability to easily deploy the environment
and provide access to other users of the Github service to solve issues together
A cool feature is to make it possible directly from the browser with the ability
to stream the terminal to the corresponding issue page ๐
Contributors โจ
Thank you very much to the people who make this possible:
Tim Pope
๐
Andrew Radev
๐
Chiel ten Brinke
๐
Mattes Groeger
๐
Shougo
๐
Xuyuan Pang
๐
Andy Stewart
๐
Amir Salihefendic
๐
Ben Mills
๐
Kevin Le
๐
Christian Brabandt
๐
Chris Toomey
๐
Dhruva Sagar
๐
easymotion
๐
Evgeni Kolev
๐
Greg Dietsche
๐
Fatih Arslan
๐
Tyler Akins
๐
Matt Wozniski
๐
Greg Sexton
๐
haya14busa
๐
Honza Pokorny
๐
inside
๐
itchyny
๐
Jeff Kreeftmeijer
๐
Miao Jiang
๐
Junegunn Choi
๐ ๐ง
Kartik Shenoy
๐
Alisue
๐
machakann
๐
Jan Larres
๐
Matthias Vogelgesang
๐
Marco Hinz
๐
Miles Z. Sterrett
๐
Nate Kane
๐
neoclide
๐
Nate Peterson
๐
Ben Williams
๐
Richard Adenling
๐
Linda_pp
๐
Roman Gonzalez
๐
Martin Grenfell
๐
simeji
๐
Steve Losh
๐
Linwei
๐
Son A. Pham
๐
Steve Vermeulen
๐
t9md
๐
Terry Ma
๐
tmux-plugins
๐
Tom McDonald
๐
vim-airline
๐
ๆไธๅท
๐
Vimwiki
๐
w0rp
๐
Christian Wellenbrock
๐
Wes Malone
๐
Will Lee
๐
Arash Rouhani
๐
Adolfo Abegg
๐
Alexandros Kozรกk
๐
Cal Martin
๐
Denys Dovhan
๐
Uwe Dauernheim
๐
Konstantin
๐
Hans-Jรถrg Schnedlitz
๐
Joรซl Porquet
๐
Blallo
๐
Hideaki Miyake
๐
Nicolas Viennot
๐
Robert Krzyzanowski
๐
Joe Block
๐
Zdharma Initiative
๐
Oh My Zsh
๐
gokcehan
๐ง
magnus woldrich
๐ง
Facebook
๐ง
Neovim
๐
zsh-users
๐
Homebrew
๐
Docker
๐
GitHub
๐
All Contributors
๐
Contributing ๐ค
- You can describe a cool feature by creating an issue with a description and the
feature
label - See the issue list, we have a
help wanted
label for those tasks that you can help solve - You can assign the problem to yourself, specify the milestone, and prepare a PR
- We have a
question
label for issues where we want to hear your opinion
Sponsorship ๐
We are grateful to the maintainers of the following projects for their great work. We are redirecting all revenue to them:
License
MIT
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK