16

GitHub - fast-ide/fast-ide: ๐Ÿ•บFast Integrated Development Environment ๐Ÿ˜ป[maintain...

 3 years ago
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

ci_dockerfile Build Status Gitter Slack

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:

  1. Email
  2. GitHub account
  3. 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 ๐ŸŒŸ

preview.png

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

tmux.gif

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

zsh.gif

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
resize window

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:

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d697465726d2d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c69626572617061792d746d75782d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d66697261636f64652d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d686f6d65627265772d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d7774667574696c2d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f626f756e7479736f757263652d6e656f76696d2d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d636f636e76696d2d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73706f6e736f72732d74706f70652d6f72616e67652e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617472656f6e2d726164696f5f742d6f72616e67652e737667

License

MIT


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK