请大家推荐 Linux 下好用的编辑器?

2016-05-21 20:40:12 +08:00
 onice

Sublime Text 很不错,但这个东西是收费的。而且在 Linux 下还有些 Bug ,例如输入法无法跟随之类的问题。

Webstorm 也很棒,但一点都不轻量级,并且也是收费的。

据说 Vim 配合插件也很强大,但纯键盘操作还是很难习惯。。。

自带的 gedit 日常用编辑配置文件之类的还行,用来写代码还是感觉功能弱了点。

虽然 Sublime 和 Webstorm 都可以破解,但我觉得这样做违背了 Linux 开源免费的精神。

请大家推荐 Linux 下好用的编辑器。支持前端,和简单的后端,起码要支持 Java 。然后需要有代码提示。

谢谢啦~~~

12449 次点击
所在节点    Linux
88 条回复
7jmS8834H50s975y
2016-05-22 21:34:33 +08:00
我用的是
```sh
alias vim='nvim'
alias vi='/usr/bin/vim'
```
" 映射 Ctrl+上下左右来切换窗口
nnoremap <silent><C-Right> :<C-u>wincmd l<CR>
nnoremap <silent><C-Left> :<C-u>wincmd h<CR>
nnoremap <silent><C-Up> :<C-u>wincmd k<CR>
nnoremap <silent><C-Down> :<C-u>wincmd j<CR>
if has('nvim')
tnoremap <silent><C-Right> <C-\><C-n>:<C-u>wincmd l<CR>
tnoremap <silent><C-Left> <C-\><C-n>:<C-u>wincmd h<CR>
tnoremap <silent><C-Up> <C-\><C-n>:<C-u>wincmd k<CR>
tnoremap <silent><C-Down> <C-\><C-n>:<C-u>wincmd j<CR>
tnoremap <silent><esc> <C-\><C-n>
endif

"for buftabs
noremap <silent><Leader>bp :bprev<CR>
noremap <silent><Leader>bn :bnext<CR>

"Quickly add empty lines
nnoremap <silent>[<space> :<c-u>put! =repeat(nr2char(10), v:count1)<cr>
nnoremap <silent>]<space> :<c-u>put =repeat(nr2char(10), v:count1)<cr>

"Use jk switch to normal model
inoremap jk <esc>

"]e or [e move current line ,count can be useed
nnoremap <silent>[e :<c-u>execute 'move -1-'. v:count1<cr>
nnoremap <silent>]e :<c-u>execute 'move +'. v:count1<cr>

"]<End> or ]<Home> move current line to the end or the begin of current buffer
nnoremap <silent>]<End> ddGp``
nnoremap <silent>]<Home> ddggP``
vnoremap <silent>]<End> dGp``
vnoremap <silent>]<Home> dggP``


"Ctrl+Shift+上下移动当前行
nnoremap <silent><C-S-Down> :m .+1<CR>==
nnoremap <silent><C-S-Up> :m .-2<CR>==
inoremap <silent><C-S-Down> <Esc>:m .+1<CR>==gi
inoremap <silent><C-S-Up> <Esc>:m .-2<CR>==gi
"上下移动选中的行
vnoremap <silent><C-S-Down> :m '>+1<CR>gv=gv
vnoremap <silent><C-S-Up> :m '<-2<CR>gv=gv
"background
noremap <silent><leader>bg :call ToggleBG()<CR>
"numbers
noremap <silent><leader>nu :call ToggleNumber()<CR>

" yark and paste
vmap <Leader>y "+y
vmap <Leader>d "+d
nmap <Leader>p "+p
nmap <Leader>P "+P
vmap <Leader>p "+p
vmap <Leader>P "+P

" Start new line
inoremap <S-Return> <C-o>o

" Improve scroll, credits: https://github.com/Shougo
nnoremap <expr> zz (winline() == (winheight(0)+1) / 2) ?
\ 'zt' : (winline() == 1) ? 'zb' : 'zz'
noremap <expr> <C-f> max([winheight(0) - 2, 1])
\ ."\<C-d>".(line('w$') >= line('$') ? "L" : "H")
noremap <expr> <C-b> max([winheight(0) - 2, 1])
\ ."\<C-u>".(line('w0') <= 1 ? "H" : "L")
noremap <expr> <C-e> (line("w$") >= line('$') ? "j" : "3\<C-e>")
noremap <expr> <C-y> (line("w0") <= 1 ? "k" : "3\<C-y>")

" Select blocks after indenting
xnoremap < <gv
xnoremap > >gv|

" Use tab for indenting in visual mode
xnoremap <Tab> >gv|
xnoremap <S-Tab> <gv
nnoremap > >>_
nnoremap < <<_

" smart up and down
nnoremap <silent><Down> :normal! gj<cr>
nnoremap <silent><Up> :normal! gk<cr>

" Select last paste
nnoremap <silent><expr> gp '`['.strpart(getregtype(), 0, 1).'`]'

" Disable Q and gQ
nnoremap Q <Nop>
nnoremap gQ <Nop>

" Navigate window
nnoremap <silent><C-q> <C-w>
nnoremap <silent><C-x> <C-w>x

" Navigation in command line
cnoremap <C-a> <Home>
cnoremap <C-b> <Left>
cnoremap <C-f> <Right>

" When pressing <leader>cd switch to the directory of the open buffer
" map <Leader>cd :cd %:p:h<CR>:pwd<CR> "I use <Plug>RooterChangeToRootDirectory

" Fast saving
nnoremap <Leader>w :w<CR>
vnoremap <Leader>w <Esc>:w<CR>
nnoremap <C-s> :<C-u>w<CR>
vnoremap <C-s> :<C-u>w<CR>
cnoremap <C-s> <C-u>w<CR>

" Toggle editor visuals
nmap <Leader>ts :setlocal spell!<cr>
nmap <Leader>tn :setlocal nonumber! norelativenumber!<CR>
nmap <Leader>tl :setlocal nolist!<CR>
nmap <Leader>th :nohlsearch<CR>
nmap <Leader>tw :setlocal wrap! breakindent!<CR>

" Tabs
nnoremap <silent>g0 :<C-u>tabfirst<CR>
nnoremap <silent>g$ :<C-u>tablast<CR>
nnoremap <silent>gr :<C-u>tabprevious<CR>

" Remove spaces at the end of lines
nnoremap <silent> ,<Space> :<C-u>silent! keeppatterns %substitute/\s\+$//e<CR>

" C-r: Easier search and replace
xnoremap <C-r> :<C-u>call VSetSearch('/')<CR>:%s/\V<C-R>=@/<CR>//gc<Left><Left><Left>

" Location list movement
nmap <silent><Leader>lj :lnext<CR>
nmap <silent><Leader>lk :lprev<CR>
nmap <silent><Leader>lq :lclose<CR>

" quickfix list movement
nmap <silent><Leader>qj :cnext<CR>
nmap <silent><Leader>qk :cprev<CR>
nmap <silent><Leader>qq :cclose<CR>

" Duplicate lines
nnoremap <Leader>d m`YP``
vnoremap <Leader>d YPgv
cherrychen
2016-05-22 21:44:00 +08:00
vim ,在 github 上有一些关于 vim 的配置,用起来比较方便
lukertty
2016-05-22 22:19:32 +08:00
Emacs 真的好,速度很快
tobylee
2016-05-22 22:55:11 +08:00
看了半天,几乎都是在推荐 Vim , Vim 我用了差不多七年,养成了随时都用 hjkl 移动习惯,记不清后来是因为什么原因就换成了 Emacs ,现在所有的编辑工作都是在 Emacs 上,不过在服务器上做小的修改时还是用 Vim 。
我主要写 C 代码, Irony 插件很好用,偶尔写 Go 和 Python ,就用 gocode 和 jedi 插件,自动完成都有相应的 company-backend ,跟 IDE 没啥区别,配置也简单,当然,如果你是写 Java 那还是用 Intellij IDEA 社区版或是 Eclipse 吧。
辞不达意,能看明白就得了。
FunnyFun
2016-05-22 23:07:17 +08:00
懂的不多, 但是觉得 VIM 不错
hanxiV2EX
2016-05-23 00:16:19 +08:00
是我太 low 了么? emacs 不会用啊
hominthesky
2016-05-23 00:18:49 +08:00
JetBrains 全家桶啊~~ 看 LZ 主要用什么语言,从中挑一个呗~
iamxi
2016-05-23 10:49:14 +08:00
没想法当极客的话,用用 Sublime 或 atom 或 vscode 就差不多了,简单实用,支持插件,也可以使用鼠标操作。当然有钻 vi 或 emacs 的精神自然好。不过两个的学习曲线确实陡峭了点。你可以先简单的挑一个用着,难得后面慢慢学。个人认为 vi 基本能使用时必须的,服务器上没图形界面,也就用用 vi 的份了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/280298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX