Sunday, March 28, 2010

Vim, GDB

In this aspect, Emacs has a better GDB interface. The best interface for using GDB with vim seems to be the clewn project. The installation is fairly easy. This page describes the process of installing and using gdb with vim. However, Clewn works only with gvim and not with vim. If you are using vim on a console, you need to recompile vim with vimgdb patch. The process is described on the Clewn webpage. You can click here . This option is little cumbersome as one has to download the source and compile it with the vimgdb patch. Since I like gvim, I prefer to use clewn.

Thursday, March 25, 2010

VIM, auto Completion

IF you are only interested in auto-completing long words as you type, then you look here.   Basically it says :

The function A_Very_Long_Function_Name() can be quite exasperating to type over and over again. While still in insert-mode, one can auto-complete a word by either searching forwards or backwards. In function, Another_Function() one can type A_Very... and hit CTRL-P. The first matching word will be displayed first. In this case it would be A_Very_Long_Variable_Name. To complete it correctly, one can hit CTRL-Pagain and the search continues upwards to the next matching word, which is A_Very_Long_Function_Name. As soon as the correct word is matched you can continue typing. VIM remains in insert-mode during the entire process.




However, if you are interested in having declarations for all functions available in C++ or in a library, you need to use ctags.  A very good explanation of the process to set it up is available here. It is quite long. I would just enumerate the steps for the sake of brevity. I tried it on both Debian 5.0 and Ubuntu 9.10 and it works perfectly. 


  1. Install exuberant-ctags

    $ sudo apt-get install ctags

  2. Download omnicppcomplete package and extract the zip file into your ~/.vim/ folder. After this .vim folder should look something like this. It may contain other folders depending on the original content of your .vim folder. IF you don't have a .vim folder in your home directory, then create now.

    $ cd ~/.vim
    $ ls
    after  autoload  doc  ftplugin omnicppcomplete-0.41.zip

  3. Generate tags for C++ . ctags generates a file called "tags". You should rename it to something like "cpp.tags". You can have different such files for different libraries.

    $ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/c++
    $ mv tags cpp.tags
  4. Now add following lines to ~/.vimrc file

    set tags+=~/.vim/cpp.tags
    set nocp
    filetype plugin on
    map  :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

    Last command maps CTRL-F6 to generate tags in the current directory directly from vim editor.

  5. Open Vim and run following command to see the help files related omnicomplete.

    :helptags $HOME/.vim/doc
    :h omnicppcomplete


Sunday, March 14, 2010

Printing text files : a2ps

Usually it is easier to convert a text file directly into PS files and then into a pdf file. 


$ a2ps -R  -1 -o abc.ps abc.cpp
$ ps2pdf abc.ps abc.pdf 

-1 :  Predefined layout: 1 x 1 portrait, 80 chars/line, major rows (i.e. alias for `--columns=1 --rows=1 --portrait --chars-per-line=80 --major=rows').

-o : Output file

Monday, March 8, 2010

Installing Debian Lenny from a USB flash disk

I tried the instructions available at this link and it worked for me. I will just summarize the steps that I followed .  I am assuming that your flash disk is identified as /dev/sdf by your system. (Check dmesg output). If you have a bigger disk, you can create multiple partitions using fdisk. We will use /dev/sdf1 for our discussion.

  1. Create a Fat16 partition using fdisk. Some information about this is available here.

    # umount /dev/sdf1
    # mkdosfs /dev/sdf1


  2. Use syslinux as a boot loader

    # syslinux /dev/sdf1

  3. Download the current Debian hd-media installer images from here.  Download vmlinuz, initrd.gz from this page.

  4. Download the current Debian netinstall cd image from here.  Note that the versions of these two images must match.

  5. Copy necessary files into the disk

    # mount /dev/sdf1 /mnt/usb
    # cp vmlinuz /mnt/usb/
    # cp initrd.gz /mnt/usb/
    # cp debian-504-i386-netinst.iso /mnt/usb


  6. Create 'syslinux.cfg' file inside /mnt/usb/ containing following lines :

    default vmlinuz
    append initrd=initrd.gz


  7. Now unmount the usb disk and fix or create the mbr

    # umount /dev/sdf1
    #install-mbr /dev/sdf


  8. Now plug into the system where you want to install Debian. You need to select USB device as your first boot device.

Friday, February 26, 2010

Debian 5.0 Lenny

I moved over from Ubuntu 9.04 to Debian 5.0 recently. It was not because I did not like Ubuntu. I think Ubuntu is simply great and it has made Linux as user friendly as Windows. But I faced problems in compiling and installing some scientific packages. Hence, I had to move over to Debian. Moreover, I had been using Debian for a long time (nearly 4 years) before switching to Ubuntu. I am quite happy to be back to Debian. The current version 5.0 is certainly better than its predecessors. GUI functions are more stable. I have all the ingredients necessary for my work. I really don't worry about having latest packages as long as the current package is stable and it works. On this aspect, I faced trouble with Ubuntu sometimes. I am planning keep updating my readers about the problems I faced with Debian 5.0 and how to get around them.

Today, I would talk about the problem of VLC player not showing the video. It happened because of debian-multimedia repository. It upgraded some codes and vlc player stopped displaying video. The solution is to remove the debian-multimedia repository from /etc/apt/sources.list and then do the following :

$ sudo apt-get update
$ apt-get remove  ffmpeg libavcodec51 libavdevice52 libavformat52 libavutil49 libpostproc51 libswscale0
$ apt-get install ffmpeg libavcodec51 libavdevice52 libavformat52 libavutil49 libpostproc51 libswscale0



$ apt-get install vlc


After this, your VLC player should work normally. It worked for me.



Thursday, February 25, 2010

Adobe flash on Google Chrome, Ubuntu

If you are not able to see Youtube videos on Google chrome, then probably your flashplayer is not working properly.

For 64 bit machines, download the Adobe flashplayer from this link.
For 32 bit machines, download from here.

Extract from the tar ball :

$ tar -xzvf libflashplayer-10.0.45.2.linux-x86_64.so.tar.gz

make a directory :

$ sudo mkdir /opt/google/chrome/plugins

$ sudo cp libflashplayer.so /opt/google/chrome/plugins

$ google-chrome --enable-plugins

You can change this command in your application menu as described here.

Saturday, January 30, 2010

Google IME for Indian Languages ...

Using indian languages on a computer had never been so easy. I mean you can type directly in hindi in any windows application - notepad or word or web browser. Thanks to the google transliteration IME. You really don't need to remember the hindi key sequence (which is the case when you use window's native IME support. You can just type in the roman characters and it converts them into your native language (the same thing that happens in Gmail or in other google application. There is a free software called "Baraha" which does the same thing. I have been using this software for quite some time and I found it useful. However, its integration with other windows application is not that good.

After saying all this, I suggest you to download google transliteration IME tool from this link and see for yourself.


Also go through the installation instruction ....

Here is a screenshot of how it looks on my computer. I advise you to enable the short-cut key for enabling and disabling google IME. The google IME icon is sitting at the bottom right corner of the screen.

In fact, I can write directly in Hindi here ... for instance ... क्या आप हिंदी देख सकते हैं ? यह बहुत अच्छा है.