Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Dextrous text editor
C Makefile C++ Other
branch: master
Failed to load latest commit information.
Documentation Document \uXXXX and \uXXXXXXXX inside double quoted strings
share Fix XML syntax file to highlight tag names according to the standard
.gitignore Add test program
COPYING curl http://www.gnu.org/licenses/gpl-2.0.txt > COPYING
FAQ Use ncurses to read terminal capabilities
Makefile Use ncurses to read terminal capabilities
Makefile.lib Split confusing macro
README.md Use ncurses to read terminal capabilities
alias.c Add streq() and use it instead of strcmp()
alias.h Move alias code to alias.[ch]
bind.c Rewrite key input
bind.h Rewrite key input
block.c Replace lines_changed() with buffer_mark_lines_changed()
block.h Use long instead of unsigned int for buffer sizes, offsets etc.
buffer-iter.c Use long instead of unsigned int for buffer sizes, offsets etc.
buffer.c Replace lines_changed() with buffer_mark_lines_changed()
buffer.h Replace lines_changed() with buffer_mark_lines_changed()
cconv.c Fix some format specifier and mismatched type warnings
cconv.h Add iconv wrapper
change.c Define enum selection and struct view in view.h
change.h Split buffer_delete_bytes() into two functions
cmdline.c Rewrite key input
cmdline.h Rewrite key input
color.c Add italic attribute
color.h Use bool type
command-mode.c Rewrite key input
command.h Change command parser to return error instead of printing it
commands.c Bash-like "cd -"
common.c Move count_nl() to common.c
common.h do_collect_files: Don't assume dirprefix has trailing slash
compiler.c Set REG_EXTENDED flag in regexp_compile()
compiler.h Validate compiler error formats as soon as possible
completion.c collect_files: Use path_dirname() and path_basename()
completion.h Move completion.c prototypes to completion.h
config.c gbuf: Don't keep buffer NUL-terminated
config.h Use bool type
ctags.c Search tag files from parent directories too
ctags.h Search tag files from parent directories too
ctype.c Add hex_decode() and isxdigit()
ctype.h Add hex_decode() and isxdigit()
cursed.c Use ncurses to read terminal capabilities
cursed.h Use ncurses to read terminal capabilities
decoder.c Add streq() and use it instead of strcmp()
decoder.h Use bool type
detect.c Use streq() instead of strcmp()
detect.h Add detect-indent option
edit.c Rename gbuf_add_ch() to gbuf_add_byte() and add unicode aware gbuf_ad…
edit.h case: Remove -m flag
editor.c Rewrite key input
editor.h Don't set input_mode directly
encoder.c Use streq() instead of strcmp()
encoder.h Use cconv in file_encoder
encoding.c Add streq() and use it instead of strcmp()
encoding.h Headers should include as little as possible
env.c Simplify env.c
env.h Simplify env.c
error.c Add struct error
error.h Add struct error
file-history.c Change ptr_array_remove() to take pointer argument
file-history.h Use bool type
file-location.c Use less global window, view and buffer
file-location.h Cleanup
file-option.c Don't use global buffer in file-option.c
file-option.h Don't use global buffer in file-option.c
filetype.c Use streq() instead of strcmp()
filetype.h Use bool type
fork.c close_on_exec() does not need to be inline
fork.h close_on_exec() does not need to be inline
format-status.c Allow "%Y" in statusline format for displaying total number of lines
format-status.h Status line formatting cleanup
frame.c Add new_root_frame()
frame.h Add new_root_frame()
gbuf.c Remove obsolete comment
gbuf.h Fix compile warning
git-open.c Rewrite key input
git-open.h Rewrite key input
history.c Change ptr_array_remove() to take pointer argument
history.h Use bool type
hl.c Change syntax highlighter to not use global buffer
hl.h Change syntax highlighter to not use global buffer
indent.c Define enum selection and struct view in view.h
indent.h Use bool type
input-special.c Rewrite key input
input-special.h Rewrite key input
iter.c Replace buffer_get_bytes() with block_iter_get_bytes()
iter.h Replace buffer_get_bytes() with block_iter_get_bytes()
key.c Rewrite key input
key.h Rewrite key input
libc.h Use bool type
list.h Use offsetof() defined in stddef.h
load-save.c Move file locking and marking readonly from load_buffer() to open_buf…
load-save.h Change save_buffer() to not use global buffer
lock.c Fix crash when lock file doesn't exist
lock.h Optional per-user file locking
main.c Use ncurses to read terminal capabilities
modes.c Add git-open command
modes.h Rewrite key input
move.c word-bwd, word-fwd: Stop at newline
move.h Use less global variables
msg.c Cleanup
msg.h Cleanup
normal-mode.c Rewrite key input
obuf.c Remove broken latin1 terminal support
obuf.h Use long instead of unsigned int for buffer sizes, offsets etc.
options.c Replace show-tab-bar and vertical-tab-bar with tab-bar option
options.h Replace show-tab-bar and vertical-tab-bar with tab-bar option
parse-args.c Add streq() and use it instead of strcmp()
parse-args.h Move count_strings() to common.c
parse-command.c Rename gbuf_add_ch() to gbuf_add_byte() and add unicode aware gbuf_ad…
path.c Add path_dirname()
path.h Add path_dirname()
ptr-array.c Fix potential bug in ptr_array_add()
ptr-array.h Remove window_idx(), view_idx(), new_window_idx() and new_view_idx()
regexp.c Assume regex passed to regexp_match_nosub() and regexp_match() is valid
regexp.h Assume regex passed to regexp_match_nosub() and regexp_match() is valid
run.c Change command parser to return error instead of printing it
screen-tabbar.c Replace show-tab-bar and vertical-tab-bar with tab-bar option
screen-view.c Add view parameter to init_selection()
screen.c gbuf: Don't keep buffer NUL-terminated
screen.h Don't use global buffer in update_term_title()
search-mode.c Rewrite key input
search.c Rename gbuf_add_ch() to gbuf_add_byte() and add unicode aware gbuf_ad…
search.h Move code to file-location.c
selection.c Replace get_selection() with view_get_selection()
selection.h Replace get_selection() with view_get_selection()
spawn.c Make it obvious that buffer returned bu gbuf_steal() isn't NUL-termin…
spawn.h int to long changes
state.c Add path_basename()
state.h Use bool type
syntax.c Add free_strings()
syntax.h Use bool type
tabbar.c Use less global window, view and buffer
tabbar.h Make first_tab_idx window specific
tag.c Search tag files from parent directories too
tag.h Search tag files from parent directories too
term-caps.c Use ncurses to read terminal capabilities
term.c Use ncurses to read terminal capabilities
term.h Use ncurses to read terminal capabilities
test-main.c Use streq() instead of strcmp()
uchar.c Use long instead of unsigned int for buffer sizes, offsets etc.
uchar.h Use long instead of unsigned int for buffer sizes, offsets etc.
unicode.c Use bool type
unicode.h Use bool type
update-option Force recompile if datadir or compiler flags change
vars.c Move build configuration to vars.c
view.c Use less global window, view and buffer
view.h Replace get_word_under_cursor() with view_get_word_under_cursor()
wbuf.c Rename util.c to common.c and move prototypes to common.h
wbuf.h Move wbuf_*() to wbuf.c
window.c Replace show-tab-bar and vertical-tab-bar with tab-bar option
window.h Replace show-tab-bar and vertical-tab-bar with tab-bar option
xmalloc.c Rename macros starting with underscore
xmalloc.h Rename macros starting with underscore

README.md

dex

Dextrous text editor

Copyright 2010 Timo Hirvonen tihirvon@gmail.com

Introduction

dex is a small and easy to use text editor. Colors and bindings can be fully customized to your liking.

It has some features useful to programmers, like ctags support and it can parse compiler errors, but it does not aim to become an IDE.

Installation

The only dependencies are libc and ncurses.

To compile this program you need GNU make and a modern C-compiler (tested with gcc and clang).

You need to specify all options for both make and make install. Alternatively you can put your build options into a Config.mk file.

make prefix=$HOME
make prefix=$HOME install

The default prefix is /usr/local and DESTDIR works as usual. See the top of the Makefile for more information.

Something went wrong with that request. Please try again.